奥委会容器在很多框架里都在使用,而在春天里它被应用的最大广泛,在框架层面上,很多功能都使用了国际奥委会技术、下面我们看一下国际奥委会的使用方法。
-
<李>把服务注册到国际奥委会容器李>
<李>使用属性注入反射对应类型的实例李>
<李>多态情况下,使用名称反射类型的实例李>
@ bean注册组件
使用@ bean注解进行类型的注册,默认你的国际奥委会容器里类型为bean的返回值,名称为bean所有的方法名,与你的包名称没有直接关系,如果你的接口有多种实现,在注册时可以使用@ bean(“林德”)这种方式来声明。
<代码> @ component, @ configuration,服务存储库注册组件代码>
这几个注解都是在类上面声明的,而@ bean是声明在方法上的,这一点要注意,这几个注解一般是指对一个接口的实现,在实现类上加这些注解,例如,一个数据仓储接口UserRepository,它可以有多种数据持久化的方式,如SqlUserRepositoryImpl和MongoUserRepositoryImpl,那么在注册时你需要为他们起一个别名,如@ (“Sql-UserRepositoryImpl) qlUserRepositoryImpl默认的名称是类名,但注意<代码>类名首字母为小写代码>。
公共接口EmailLogService { 无效发送(字符串邮件,字符串消息); } @ component () 公共类EmailLogServiceHttpImpl实现EmailLogService { 私有静态最终日志记录器=LoggerFactory.getLogger (EmailLogServiceHttpImpl.class); @Override 公共空间发送(字符串邮件,字符串消息){ 断言。notNull(电子邮件、邮件不得空!”); logger.info(“消息:发送电子邮件:{},{}”,电子邮件、消息); } } @ component (“email-socket”) 公共类EmailLogServiceSocketImpl实现EmailLogService { 私有静态最终日志记录器=LoggerFactory.getLogger (EmailLogServiceSocketImpl.class); @Override 公共空间发送(字符串邮件,字符串消息){ 断言。notNull(电子邮件、邮件不得空!”); logger.info(“消息发送email2:{}:{}”,电子邮件、消息); } }//看一下调用时的测试代码 @ resource (name=" email-socket ") EmailLogService socketEmail; @ autowired @ qualifier (“emailLogServiceHttpImpl”) EmailLogService httpEmail; @Test 公共空间testIoc2 () { socketEmail。发送(“ok”,“好的”); } @Test 公共空间testIoc1 () { httpEmail。发送(“ok”,“好的”); }
1。使用资源装配豆对象
在通过<代码>别名> 代码调用bean时,你可以使用@注解来装配对象
2。使用@ autowired装配豆对象
也可以使用@ autowired
@ qualifier (“emailLogServiceHttpImpl”)两个注解去实现程序中的<代码>多态> 代码。
在我们有些相同行为而实现方式不同的场景中,如版1本接口与版本2接口,在得到方法实现有所不同,而这
两个版本都要同时保留,这时我们需要遵守开闭原则,扩展一个新的接口,而在业务上对代码进行重构,
提取两个版本相同的方法到基类,自己维护各自独有的方法,在为它们的bean起个名字,在装配时,通过
bean的名称进行装配即可。
写个伪代码:
类Api_version1 () { @ autowired @ qualifier (“print-version1”) PrintService PrintService; } 类Api_version2 () { @ autowired @ qualifier (“print-version2”) PrintService PrintService; } 类BasePrintService {} 接口PrintService {} @ service (“print-version1”) 类PrintServiceImplVersion1 BasePrintService延伸实现PrintService {} @ service (“print-version2”) 类PrintServiceImplVersion2 BasePrintService延伸实现PrintService {}
以上所述是小编给大家介绍的java的spring ioc的使用详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!