DI/IOC <bean> 表明由容器构建的对象(经过反射构建,且类必须有无参的构造方法)web
公共属性 id=“惟一的id” 在容器中是惟一的session
name=“相似id属性” 能够同时指定多个使用逗号、分号、或空格分隔spa
若是不指id和name定就能够使用全类名获取prototype
class=“类的全路径”component
注入方式 属性注入 <property name="属性名"></property> value=“字面值”对象
ref=“容器内对象的ID”继承
在<property>或<constructor-arg>内部能够设置内部bean。内部bean不须要设置id,只给当前属性或参数使用,外部不能使用 索引
构造器注入<constructor-arg> inde“参数索引”作用域
name=“参数名”get
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”)