




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第关于@Component注解的含义说明目录一、注解分类二、@Component注解含义三、基于@Component扩展的注解四、component的扫描组件五、方法初始化和销毁1.@PostConstruct注解2.@PreDestroy注解3.示例
一、注解分类
1、@controller:controller控制器层(注入服务)
2、@service:service服务层(注入dao)
3、@repository:dao持久层(实现dao访问)
4、@component:标注一个类为Spring容器的Bean,(把普通pojo实例化到spring容器中,相当于配置文件中的beanid=""class=""/)
二、@Component注解含义
@Component:标注Spring管理的Bean,使用@Component注解在一个类上,表示将此类标记为Spring容器中的一个Bean。
三、基于@Component扩展的注解
@Repository:
@Repository本身是基于@Component注解的扩展,被@Repository注解的POJO类表示DAO层实现,从而见到该注解就想到DAO层实现,使用方式和@Component相同;
@Service:
@Service本身是基于@Component注解的扩展,被@Service注解的POJO类表示Service层实现,从而见到该注解就想到Service层实现,使用方式和@Component相同;
@Controller:
@Controller本身是基于@Component注解的扩展,被@Controller注解的类表示Web层实现,从而见到该注解就想到Web层实现,使用方式和@Component相同;
Tips:使用@Component,@Service,@Controller,@Repository注解的类,表示把这些类纳入到spring容器中进行管理,同时也是表明把该类标记为Spring容器中的一个Bean。
四、component的扫描组件
下面写这行配置是引入component的扫描组件
context:component-scanbase-package=”com.mmnc”
其中base-package为指定需要扫描的包(含所有子包),扫描被@Service、@Controller、@Repository、@Component等注解标注的Java类,将其扫描注入到Spring容器,注入成Bean:
@Service用于标注业务层组件
@Controller用于标注控制层组件(如struts中的action)
@Repository用于标注数据访问组件,即DAO组件.
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注,标识为一个Bean。
五、方法初始化和销毁
从JavaEE5规范开始,Servlet增加了两个影响Servlet生命周期的注解:@PostConstruct和@PreConstruct,这两个注解被用来修饰一个非静态的void()方法,而且这个方法不能有抛出异常声明,标注方法的初始化和销毁,当你需要在系统启动时提前设置一下变量或者设置值操作时,可以使用@PostConstruct注解进行项目启动时设置来完成,当你需要处理关闭资源或者发送通知相关操作时可以使用@PreConstruct完成。
1.@PostConstruct注解
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。
2.@PreDestroy注解
被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreDestroy修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。
加载顺序如图:
在Spring中可以使用以下方式指定初始化方法和销毁方法(方法名任意):
//对象创建并赋值之后调用
@PostConstruct
publicvoidinit(){
System.out.println("对象创建并赋值之后调用...");
}
和
//容器移除对象之前
@PreDestroy
publicvoiddetory(){
System.out.println("容器移除对象之前执行...");
}
3.示例
@Controller
@Lazy(false)
publicclassServletInit{
@Autowired
privatePCASigninServletpcaSigninServlet;
@Autowired
privatePCASignoutServletpcaSignoutServlet;
@Autowired
privatePCAInitServletpcaInitServlet;
@Autowired
privatePCALogoutServletpcaLogoutServlet;
@Autowired
privatePCAInfoServletpcaInfoServlet;
@Autowired
privateHelloServlethelloServlet;
@Autowired@Qualifier("handler")
privateWebAppContextwebapp;
@PostConstruct
voidinit(){
Serverserver=newServer(8848);
ServletContextHandlercontextHander=newServletContextHandler(ServletContextHandler.SESSIONS);
contextHander.setContextPath("/");
System.out.println("startinit");
HandlerCollectionhc=newHandlerCollection();
hc.setHandlers(newHandler[]{webapp,contextHander});
server.setHandler(hc);
System.out.println("addServlet/hello");
contextHander.addServlet(newServletHolder(helloServlet),"/hello");
contextHander.addServlet(newServletHolder(pcaSigninServlet),"/pca/signin");
contextHander.addServlet(newServletHolder(pcaSignoutServlet),"/pca/signout");
contextHander.addServlet(newServletHolder(pcaInitServlet),"/pca/init");
contextHander.addServlet(newServletHolder(pcaLogoutServlet),"/pca/logout");
contextHander.addServlet(newServletHolder(pcaInfoServlet),"/pca/info");
System.out.p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年的高级会计考试新颖试题及答案
- 媒体对无人机的影响试题及答案
- 无人机飞行技术试题及答案分析
- 2025年中级会计学习难点突破试题及答案
- 2024年航空维修人员执照考试的问题识别与试题及答案结论
- 外语考试发展方向的试题及答案
- 护师考试注意事项试题及答案
- 2024年中级审计师考试的考点汇编与试题及答案
- 中级会计必考试题及答案详解
- 备战2025年入团考试的技巧试题及答案
- (四调)武汉市2025届高中毕业生四月调研考试 地理试卷(含答案)
- 2024年探放水工技能大赛理论考试题库500题(供参考)
- GB/T 13025.7-2012制盐工业通用试验方法碘的测定
- 封条模板A4直接打印版
- 毒理基因组学与系统毒理学
- 单线铁路隧道毕业设计计算书(72页)
- 山东省安全生产条例题库200题含答案
- 《毕业设计--年产4000吨甲胺精馏工段的工艺初步设计 》
- 关门梁引水电站压力管道设计说明
- 关于建立涉农贷款专项统计制的通知银发号
- 基于PLC的数控车床电气控制系统设计毕业论文_(2)[1]
评论
0/150
提交评论