Board logo

标题: Java中 @component 注解的作用 [打印本页]

作者: xiexie    时间: 2023-1-5 09:02     标题: Java中 @component 注解的作用

在持久层、业务层和控制层中,分别采用@Repository(实现dao访问)、@Service 服务(注入dao)和@Controller控制器(注入服务)对分层中的类进行注入,而用@Component对那些比较中立的类进行实例化注入。

spring注解中@component就是说把这个类交给Spring管理

比如新建个类叫userStudent,因为不清楚这个类是属于哪个层面,所以就用@Component来进行输入到spring容器中。

spring注解的作用:

1、spring作用在类上的注解有@Component、@Responsity、@Service以及@Controller;而@Autowired和@Resource是用来修饰字段、构造函数或者设置方法,并做注入的。

2、当注解作用在类上时,表明这些类是交给spring容器进行管理的,而当使用@Autowired和@Resource时,表明我需要某个属性、方法或字段,但是并不需要我自己去new一个,只需要使用注解, spring容器会自动的将我需要的属性、方法或对象创造出来。这就是通常所说的依赖注入和控制反转。


  @Component,@Service,@Controller,@Repository注解的类,并把这些类纳入进spring容器中管理。 
下面写这个是引入component的扫描组件 
<context:component-scan base-package=”com.mmnc”>    

其中base-package为需要扫描的包(含所有子包) 
       1、@Service用于标注业务层组件 
       2、@Controller用于标注控制层组件(如struts中的action) 
       3、@Repository用于标注数据访问组件,即DAO组件. 
       4、@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。    
           @Service public class UserServiceImpl implements UserService { } 
           @Repository public class UserDaoImpl implements UserDao { } getBean的默认名称是类名(头字母小写),如果想自定义,可以@Service(“***”)               这样来指定,这种bean默认是单例的,如果想改变,可以使用@Service(“beanName”) 
           @Scope(“prototype”)来改变。可以使用以下方式指定初始化方法和销毁方法(方法名任意): @PostConstruct public void init() { } 





欢迎光临 PHP开发笔记 (http://phpvi.com/) Powered by Discuz! 6.1.0