标题: 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 |