1、spring作用在类上的注解有@Component、@Responsity、@Service以及@Controller;而@Autowired和@Resource是用来修饰字段、构造函数或者设置方法,并做注入的。
2、当注解作用在类上时,表明这些类是交给spring容器进行管理的,而当使用@Autowired和@Resource时,表明我需要某个属性、方法或字段,但是并不需要我自己去new一个,只需要使用注解, spring容器会自动的将我需要的属性、方法或对象创造出来。这就是通常所说的依赖注入和控制反转。
因为在持久层、业务层和控制层中,分别采用@Repository、@Service和@Controller对分层中的类进行凝视,而用@Component对那些比较中立的类进行凝视。
spring注解中@component就是说把这个类交给Spring管理,又一次起个名字叫userManager,因为不清楚这个类是属于哪个层面,所以就用@Component。
依赖注入(Dependency Injection):在运行期间,有外部容器动态地将依赖对象注入到组件中(构造方法和set方法)。好处:
1、降低组件之间的耦合度,实现软件各层之间的解耦。
2、可以使容器提供众多服务如事务管理消息服务处理等等。
3、容器提供单例模式支持,开发人员不需要自己编写实现代码。
4、容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能。
Spring DI的好处:在容器初始化的时候,会创建各个Object,利用DI特性,就可以自动的给创建的Object添加属性值。你可以看到Sping DI 贯穿了Spring框架的各个地方。 如果不使用接口,就如你说的,代码不需要修改就实现不了,这是不使用Interface的坏处。此外Spring AOP就用到了Interface,如果不使用Interface,那么Spring还可以通过CGLIB来实现AOP,这是Spring 在没有使用Interface情况下的优势。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)