利用spring容器可以管理我们自己写的bean,但如何管理第三方的bean呢?在容器中装配第三方的bean,所对应的类在第三方jar包中。故不能直接使用传统的@Service,@Controller,@Mapper,@repository ,@Component注解。
方式1:主动获取bean
我们需要自己写一个配置类,在配置类中通过bean注解进行声明。所有的配置类需要放在包config中.
@SpringBootApplication 一般程序的入口用该配置类注解。普通的配置类不用该注解。 @Configuration 普通的配置类使用该注解
定义第三方bean需要在方法之间加@Bean注解(假如要将Java自带的SimpleDateFormat装配到容器中),方法名就是bean的名字
@Configuration public class AlphaConfig { @Bean public SimpleDateFormat simpleDateFormat(){//这个方法返回的对象将会被装配到容器中 return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); } }//返回的对象可用于格式化日期
@Test public void testThirdBean(){ SimpleDateFormat simpleDateFormat = applicationContext.getBean(SimpleDateFormat.class); System.out.println(simpleDateFormat.format(new Date())); }
方式2:在使用角度,使用依赖注入的方式更方便的使用(上面展示的是主动获取的方式,用于帮助我们理解原理)
注入自己定义的bean;
@Autuwired
private AlphaDao alphaDao;
若某一接口有两个实现类,要注入的不是默认实现类的那个bean,需要通过注解来指定
@Autowired @Qualifier("now")//括号里为bean的名字 private AlphaDao alphaDao;