Spting--DI/IOC
DI/IOC <bean> 代表由容器构建的对象(通过反射构建,且类必须有无参的构造方法)
公共属性 id=“唯一的id” 在容器中是唯一的
name=“类似id属性” 可以同时指定多个使用逗号、分号、或空格分隔
如果不指id和name定就可以使用全类名获取
class=“类的全路径”
注入方式 属性注入 <property name="属性名"></property> value=“字面值”
ref=“容器内对象的ID”
在<property>或<constructor-arg>内部可以设置内部bean。内部bean不需要设置id,只给当前属性或参数使用,外部不能使用
构造器注入<constructor-arg> inde“参数索引”
name=“参数名”
type=“参数数据类型”
工厂方法注入(不常用)
集合 <util:集合类型> 添加util文件才能支持 (集合类型为list,set,map)
list和set有 id,value,ref 值
map有 id 和 entry(key,value,key-ref,value-ref)
简化 p标签 p:属性名=“字面值”
p:属性名-ref=“引用对象的id”
自动装配 特点:两种方法不能同时使用,还会降低代码可读性
autowire=“byType” 容器内对应数据类型的对象只能有一个
autowire=“byName” 对象名和属性名要一致
继承 特点:子bean可以继承和覆盖父bean的属性,父bean中自动装配的属性不能被继承
parent=“父bean的id”
abstract=“true” 只能在容器内被继承,不能被外部使用
作用域 scope=“singleton” 默认的,在容器内创建一个实例,并共享。在创建容器时就进行对象的实例化
scope=“prototype” 每次调用getBean()方法都会产生新的实例
scope=“session” 在web项目对每个会话产生新的实例
scope=“request” 在web项目对每个请求产生新的实例
外部属性文件 定义:命名为*.porperties 一般放在src目录下,保存的是key=value的键值对,多个键值对用回车换行
加载:导入context的标签定义 <context:property-placeholder location="classpath:外部属性文件名"/>
使用:属性名=“${key}”
注解 对classpath下的类进行扫描和检测,对具有特定注解的类进行实例,并进行装配
启动扫描 <context:component-scan base-package="包名1,包名2"></context:component-scan> 扫描包及子包下的类
resource-pattern=“过滤的类名”
分类 @Component 基本组件
@Reqository 持久化组件
@Service 业务逻辑组件
@Controller 控制其组建
用法 把注解定义在类名前,可以用 (value-“组件名”) 指定组件名。如果不指定组件名,默认为首字母小写的类名
自动装配 把注解放在属性前可实现自动装配
@Auotwired requried=false 不是必需的
@Qualifier(“指定组建的id”)
Spting--DI/IOC的更多相关文章
- Atitit js中的依赖注入di ioc的实现
Atitit js中的依赖注入di ioc的实现 全类名(FQCN)为标识符1 混合请求模式1 使用类内 builder 即可..2 Service locator method走ok拦2 Jav ...
- 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器
1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...
- ASP.NET MVC不可或缺的部分——DI(IOC)容器及控制器重构的剖析
ASP.NET MVC不可或缺的部分——DI(IOC)容器及控制器重构的剖析 IoC框架最本质的东西:反射或者EMIT来实例化对象.然后我们可以加上缓存,或者一些策略来控制对象的生命周期,比如是否 ...
- Helloworld之Spring依赖注入/控制反转(DI/IoC)版
Helloworld之Spring依赖注入/控制反转(DI/IoC)版 作者:雨水, 日期:2014-10-29 摘要:本文主要用于培训刚開始学习的人理解Spring中的依赖注入的基本概念. 先介绍依 ...
- Spring专题2: DI,IOC 控制反转和依赖注入
合集目录 Spring专题2: DI,IOC 控制反转和依赖注入 https://docs.spring.io/spring/docs/2.5.x/reference/aop.html https:/ ...
- ASP.NET MVC不可或缺的部分——DI(IOC)容器及控制器重构的剖析(DI的实现原理)
IoC框架最本质的东西:反射或者EMIT来实例化对象.然后我们可以加上缓存,或者一些策略来控制对象的生命周期,比如是否是单例对象还是每次都生成一个新的对象. DI实现其实很简单,首先设计类来实现接口, ...
- spring的DI.IoC是什么
最近要搞spring的单元测试,不得已啊啊啊啊啊啊啊啊啊又要开始搞spring…… 日目晶…… 搞这几个概念,先甩一部分代码: UserDao 接口 package com.itheima.ioc; ...
- IOC,DIP,DI,IoC容器
定义 IOC(Inversion of Control 控制反转),DIP(Dependency Inverson Principle 依懒倒置)都属于设计程序时指导原则,并没有具体的实现.比较常用 ...
- 对于Spring中AOP,DI,IoC概念的理解
IOC IoC(inversion of Control),控制反转.就好像敏捷开发和SCRUM一样,不是什么技术,而是一种方法论,一种工程化的思想.使用IoC的思想意味着你将设计好的对象交给容器控制 ...
- Spring基础篇——DI/IOC和AOP原理初识
DI(Dependency Injection),依赖注入,和我们常听说的另一个概念 IOC(控制反转)其实归根结底实现的功能是相同的,只是同样的功能站在不同的角度来阐述罢了.这里博主就不去过多的辨析 ...
随机推荐
- [工作中的设计模式]组合模式compnent
一.模式解析 将对象组合成树形结构以表示“部分整体”的层次结构.组合模式使得用户对单个对象和使用具有一致性. 组合模式的要点是: 1.对象整体以树形层次结构进行展示 2.树的根节点和子节点均可以添加删 ...
- SpringMVC注解@RequestParam全面解析---打酱油的日子
在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取.这里主要 ...
- 解决webstorm卡顿问题
webstorm强大的功能就不多做介绍了.但是它的缺点也显而易见:吃内存. 电脑配置稍低一点,运行webstorm就特别容易卡顿,特别是项目比较大的时候,那卡顿得不要不要的. 在我的笔记本8g内存 2 ...
- Ext3文件系统及JDB介绍
Ext3介绍 对于ext3文件系统,磁盘空间划分一系列block groups,每个group有位图来跟踪inode和data块的分配和范围.其物理布局如下: Superblock:位于group内第 ...
- 洛谷 P2737 [USACO4.1]麦香牛块Beef McNuggets Label:一点点数论 && 背包
题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办法让这种可怕的设想泡汤.奶牛们进行斗争的策略之一是“劣质的包装”.“看,”奶牛们说,“如 ...
- Java技巧(代码简略)
1.将数组循环显示 int[] num = new int[]{1,3,5,7,9}; int currentNum=0; num[++current%num.length];
- java 输入年月,获取日历表
/* 做日历作业: 输入一个时间如: 2016-11 就显示2016年11月的日历显示 */ import java.util.*; class calendar { public static vo ...
- Daily Scrum02 12.07
最近大家都在赶编译的大作业,没日没夜的码代码,调试,大家都很辛苦,但是,我们团队的工作,大家也不能懈怠啊! 大家要顶住压力,加油努力啊! Member 任务进度 下一步工作 吴文会 就总结点进行汇报 ...
- CI框架3
1.CI不能像smarty那样直接{}访问, <?php echo $ci;?> application\config\ config.php 日志查看 $config['lo ...
- oracle优化
sql语句 优化方式: 1select 语句中避免用"*" oracle在解析时,会将“*”依次转换成所有的列名(数据字典完成)耗时 2尽量多用commit语句 及时提交,释放资源 ...