【1】使用@Component注解开发,可以自动推导id名称。主要是根据类的名称来定的。如果名称的第二个字母是小写,则第一个字母也小写,如果名称的第二个字母是大写,则第一个字母不变。当然也可以在@Component注解上指定id值。
【2】加载外部配置文件使用context:property-placeholder
<context:property-placeholder location="hero.properties"/>
【3】使用注解,设置属性值
对list对象设置属性值
第一步导入util约束
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-4.3.xsd"
第二步在配置文件中写入以下内容
<util:list id="list">
<value>11</value>
<value>12</value>
</util:list>
第三步在类文件中注入属性
@Value("#{@list}")
private List<Integer> lists;
补充:对map对象、set对象与properties对象设置如初一折
<util:set id="set">
<value>1</value>
</util:set>
<util:map id="map">
<entry key="name1" value="c"></entry>
</util:map>
<util:properties id="pro">
<prop key="sex">男</prop>
</util:properties>
在属性前加上@Value("#{@ID}"),其中ID是指配置文件中的id名称
【4】关于Autowried注解工作方式
Autowried注解先按类型注入,寻找当前类型及其子孙类型的bean,如果找到唯一的直接注入,如果没找到或找到多个,则按类型注入失败,开始按id注入。寻找是否存在id等于当前属性名的bean,如果找到就注入,如果找不到就抛出异常。
【5】注解与配置文件对应
配置文件 | 备注 | 注解 | 备注 |
---|---|---|---|
bean | 注入类文件 | @Component | @Service Service注解 @Controller Web层注解 @Repository Dao层注解 以上三种注解皆相当于 @Component
@Component可以设置value值相当于id值, 如若不设置则通过Spring自动命名方式 |
properties | 注入属性,在bean内部书写 注入集合,映射以及Properties对象 应注意书写方式 注入自定义加载类对象,使用ref进行注入 | @Value | 在属性上书写,需先书写util约束,书写方式 可以参考【3】的书写方式 @Value("#{@ID}") |
@Autowired | 在对象属性上书写,注入自定义对象 | ||
Scope | 作用范围 | @Scope | 放在类上,可填写参数,默认为singleton 值可以为 singleton prototype request session globalsession
|
init-method | 对象创建之后执行方法 | @PostConstruct | 放在方法上 |
destroy-method | 对象销毁之前执行方法 | @PreDestroy | 放在方法上 |
lazy-init | 设置懒加载,默认为false | @Lazy | 放在方法上,表示修饰的类的bean采用懒加载机制 |
【6】获取配置文件(.propertires)中的内容
- 在applicationContext.xml中开启<context:property-placeholder location="xxx.properties"/>
- 在需要的属性上书写@Value("${xxx}"),xxx对应的是properties文件中的key值。