内容简介:Component的派生性:@Repository是spring的注解,标注为仓储。新建一个类,注入前面写好的一级组件。
Spring模式注解装配
定义:一种用于声明在应用中扮演“组件”角色的注解。 举例:@Component、@Service、@Configuration 装配:<context:component-scan>(Spring 2.5) @ComponentScan(Spring 3.0) 复制代码
Component的派生性:
定义一级注解类,用的是annotation方式: 复制代码
@Target @Retention @Document都是 java 自带的注解: 复制代码
@Repository是spring的注解,标注为仓储。
新建一个类,注入前面写好的一级组件。
完成引导类,注入bean。
Component的层次性:
再次运行,结果不变。
Spring @Enable模块装配
定义:具备相同领域的功能组件集合,组合所形成一个独立的单元 举例:@EnableWebMvc @EnableAutoConfiguration等 实现:注解方式、编程方式 注解驱动方式: 复制代码
configuration,里面配置了Bean:
获取bean:
接口编程方式:
这里导入的是上面Seletor:
在seletor中就可以加一些分支、判断和其他的方法。
接下来的步骤跟注解方式一样。
HelloWorldImportSelector -> HelloWorldConfiguration -> HelloWorld
相比较下,注解方式方便,但是编程方式比注解方式更为灵活。
Spring 条件装配
定义:Bean装配的前置判断 举例:@Profile、@Conditional 实现:注解方式、编程方式 复制代码
@Profile:配置化条件装配 @Conditional: 编程条件装配
@Profile('java 8') Lambda 求和:
新建一个service接口
看到红框部分我都蒙了,以为是lambda表达式,查一下才知道这个叫做“变长变量”,是jdk1.5的新特性。可以传入多个值,类型就是前面制定的Integer。
实现这个接口,进行求和
用lambda进行求和。
红框部分设置Profile,他就会去扫描service包下,带有java8注解的Service进行装配。
按照视频中的敲会出现这个错误:这是因为添加了数据库组件,所以autoconfig会去读取数据源配置,而新建的项目还没有配置数据源,所以会导致异常出现。
解决方法:去掉数据库依赖。
@Condition 编程方式进行装配:
新建一个类,红色的metadata是从ConditionOnSystemProperty里面拿他的属性。
获取传进来的user.name 还有值,进行比较。
@Conditional :通过@Conditional注解可以根据代码中设置的条件装载不同的bean,在设置条件注解之前,先要把装载的bean类去实现Condition接口,然后对该实现接口的类设置是否装载的条件
这里传进去user.name还有value,是我本机的名字。
然后到 ConditionalOnSystemProperty注解类,注解类再通过@Condition跳到OnSystemPropertyCondition,里面进行判断,传进来的value和本机的user.name进行比较,相等返回true。
这个bean就能被获取到,运行 成功。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
家事的撫慰(下冊)
Cheryl Mendelson / 甘錫安 / 大家出版社 / 2014-1-28 / NT$520
家事界暢銷參考書籍 各大媒體一致盛讚 亞馬遜讀者四星半高度評鑑 誠品、博客來、香港誠品 三選書 家務界經典暢銷書│各大媒體一致盛讚│讀者四星半高度評鑑 「這個世代最重要的家事著作!」──《大西洋月刊》 恢復家務打理者應有的地位,賦予應有的尊嚴和價值。 以生理的勞動、心力的投入,以及正確的持家知識,換得情感上的溫暖與安全。 .家裡空氣有異味,用香味來......一起来看看 《家事的撫慰(下冊)》 这本书的介绍吧!