Spring_02
Posted 寻渝记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring_02相关的知识,希望对你有一定的参考价值。
注意:注入基本类型值在本质上就是依赖注入,而且是利用的set方式进行的依赖注入
1 注入基本类型的值
<property name="基本类型的成员变量名" value="值"/>
2 注入集合类型的值(直接注入)
2.1 注入list类型的值
1 <property name="interest"> 2 <list> 3 <value>钓鱼</value> 4 <value>做饭</value> 5 <value>看电视</value> 6 <value>看电视</value> 7 </list> 8 </property>
2.2 注入set类型的值
1 <property name="city"> 2 <set> 3 <value>北京</value> 4 <value>长沙</value> 5 <value>武汉</value> 6 <value>武汉</value> 7 </set> 8 </property>
2.3 注入map类型的值
1 <property name="score"> 2 <map> 3 <entry key="英语" value="80"/> 4 <entry key="math" value="90"/> 5 </map> 6 </property>
2.4 注入properties类型的值
1 <property name="db"> 2 <props> 3 <prop key="username">King</prop> 4 <prop key="password">1234</prop> 5 </props> 6 </property>
3 注入集合类型的值(利用引用注入)
1 <util:list id="interestBean"> 2 <value>游泳</value> 3 <value>台球</value> 4 <value>编程</value> 5 </util:list> 6 <util:set id="cityBean"> 7 <value>北京</value> 8 <value>长沙</value> 9 <value>南昌</value> 10 </util:set> 11 <util:map id="scoreBean"> 12 <entry key="english" value="80"/> 13 <entry key="math" value="90"/> 14 </util:map> 15 <util:properties id="dbBean"> 16 <prop key="username">Sally</prop> 17 <prop key="password">1234</prop> 18 </util:properties> 19 <!-- 20 以引用的方式注入集合类型的值。 21 --> 22 <bean id="vb2" class="value.ValueBean"> 23 <property name="interest" 24 ref="interestBean"/> 25 <property name="city" 26 ref="cityBean"/> 27 <property name="score" 28 ref="scoreBean"/> 29 <property name="db" 30 ref="dbBean"/> 31 </bean>
4 利用注解进行简化配置
4.1 与类有关的4个注解
@respository("id属性值") -> 用于持久层
@controller("id属性值") -> 用于控制层
@service("id属性值") -> 用于服务层
@component("id属性值") -> 通吃
注意:id属性值 一般是 类的首字母小写后的结果
4.2 其他注解
@Scope("singleton") -->> 设置作用域
@Lazy(true) -->> 设置延迟加载
@PostConstruct -->> 设置初始化方法
@PreDestroy -->> 设置销毁方法
@Value("warrior") -->> 给成员变量注入值
5 使用spring表达式去读取其他bean的属性
1 <bean id="sb1" class="value.SpelBean"> 2 <property name="name" 3 value="#{vb1.name}"/> 4 <property name="interest" 5 value="#{vb1.interest[1]}"/> 6 <property name="score" 7 value="#{vb1.score[‘英语‘]}"/> 8 <property name="pageSize" 9 value="#{config[‘jdbc.pagesize‘]}"/> 10 </bean>
6 依赖注入
6.1 @Autowired 和 @Qualifier("student")
直接将这两行写到 注入变量上面就行啦;支持 set注入 和 构造器注入
6.2 @Resource(name="student") -->> 一般都用这个
Resource 的包在 servlet-api.jar,所以需要配置一下运行环境;只支持 构造器注入
7 使用了注解后必须在spring配置文件中配置注解扫描
注解扫描
容器会扫描指定包及其子包下面的所有的类,如果类前面添加了特定的注解(比如@Component),则容器会将这个类纳入容器进行管理(相当于配置了一个bean,其中,bean的id默认值等于首字母小写之后的类名)
<context:component-scan base-package="annotation"/>
本博客源代码:点击前往
以上是关于Spring_02的主要内容,如果未能解决你的问题,请参考以下文章
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
SRPING02_配置数据源原始注解开发新注解开发集成Junit代码实现
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
What's the difference between @Component, @Repository & @Service annotations in Spring?(代码片段