深入理解java的spring ioc的使用

  

  

奥委会容器在很多框架里都在使用,而在春天里它被应用的最大广泛,在框架层面上,很多功能都使用了国际奥委会技术、下面我们看一下国际奥委会的使用方法。

  
      <李>把服务注册到国际奥委会容器李   <李>使用属性注入反射对应类型的实例   <李>多态情况下,使用名称反射类型的实例   
  

  

@ 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。使用资源装配豆对象
  在通过<代码>别名>   

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的使用详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

深入理解java的spring ioc的使用