Spring两种实例化对象的方式:
当自己可以定义的实例类的时候,可以在当前类上加入:
@Component注解(该注解会自动实例化对象并保存到Spring容器中)
创建配置类并在配置类中加入注解:
@Configuration
该注解表示当前类是配置spring框架信息的
@ComponentScan(“com.aries.spring.serve.demo”)
指定组件扫描的包(当前包及其子包的所有类都会被扫描)
如果被扫描的类上有@Component注解,那么这个类就会被实例化并保存到spring容器
当我们没有在类上添加@Component注解时或是非自定义的类型(即无法添加组件扫描时)
我们就需要在配置类中使用@Bean
方法的做法
@Bean注解
@Bean注解下面要编写一个方法,这个方法的返回值会保存到spring容器中
保存的对象有对象的id或name来唯一标识,方法名就是这个对象的id(name)
我们在测试类中进行测试
得到结果
总结:
仅自定义的类型可以使用组件扫描的方式,当然,自定义的类型也可以使用@Bean
方法的做法,但是不推荐。
非自定义的类型不可以使用组件扫描的方式(因为你没有办法在这些类型上添加组件注解),只能使用@Bean
方法的做法。