Spring注解:@Resource、@PreConstruct、@PreDestroy、@Component
要使用Spring的注解,必须在XML文件中配置有属性,告诉人家你要使用注解,Spring容器才会去加载类上的注解:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <context:annotation-config /> </beans>
@Resource注解:
作用:自动装配属性值
位置:属性的setter方法上
example:
public class UserService {
private UserDao userDao; public User get() {
return userDao.get();
} public UserDao getUserDao() {
return userDao;
} @Resource(name="userDao")
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
被Resource注解标记的setter方法,Spring容器就会帮你自动装配,这个注解有一个name属性,设置的就是你的要注入那个bean的名字,若你没有填写这个name属性,Spring将自动帮你处理,用方法名去掉set去查找这个bean或者参数名去查找,这也说明了Resource注解是遵循by-name语法的
@PreConstruct和@PreDestroy
解释:@PreConstruct对应bean的初始化方法,@PreDestroy对应bean的销毁方法
作用:通过这两个注解可以让我们很好的观察着bean的声明周期情况
位置:放在对应的方法上
public class UserService {
@PostConstruct
public void init() {
System.out.println("UserService is initing");
} @PreDestroy
public void destroy() {
System.out.println("UserService is destroying");
}
......
}
@Component和它同类型注解
作用:这个注解最大的作用就是自动检测组件,也就是代替了XML中对bean的配置,和它有着相同作用的注解还有@Service、@Repository、@Controller,这些注解在现在还没有什么明显的区别,但是在以后可能在MVC模式上有着很大的不同,可能对应着不同的层,这些纯属个人的猜测。
位置:bean类上
提醒:在使用这个注解的时候,还要在XML上配置扫描的属性,告诉人家你的bean在那些包上
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <context:annotation-config /> <context:component-scan base-package="com.xujianguo" /> </beans>
example:
@Component
public class UserService {
//代码
}
其实这个Component注解也是有个name属性的,跟XML中定义bean的id一样,如果你有天就按照name的值来,如果没有的话就按照开头小写的非限定类名作为bean的id
Spring注解:@Resource、@PreConstruct、@PreDestroy、@Component的更多相关文章
- Spring 注解 @Resource和@Autowired(转)
鸣谢:http://my.oschina.net/u/216467/blog/205951 @Resource和@Autowired两者都是做bean的注入使用. 其实@Resource并不是Spri ...
- Spring注解@Resource和@Autowired区别对比
转载:http://www.cnblogs.com/think-in-java/p/5474740.html @Resource和@Autowired都是做bean的注入时使用,其实@Resource ...
- Spring注解 @Resource和@Autowired
@Resource和@Autowired两者都是做bean的注入使用.其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource 需要导入.但是Spri ...
- Spring 注解 @Resource和@Autowired
@Resource和@Autowired两者都是做bean的注入使用. 其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource 需要导入.但是Spr ...
- Spring注解@Resource和@Autowired的区别
@Resource和@Autowired都是用来做bean的依赖注入的,两者都可以写在字段和setter方法上. java为我们提供了 javax.annotation.Resource这个注解. s ...
- Spring注解@Resource和@Autowired区别对比、spring扫描的默认bean的Id、程序获取spring容器对象
-------------------------注解扫面的bean的ID问题-------------------------- 0.前提需要明白注解扫描出来的bean的id默认是类名首字母小写,当 ...
- 【转载】Spring注解@Resource和@Autowired区别对比
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Sprin ...
- Spring注解@PostConstruct与@PreDestroy
关于在spring 容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 第二 ...
- spring 注解@Resource @Autowired区别
1.@Autowired寻找类的时候默认是ByType,也就是通过类的类型来寻找类.不过,也可以通过借助@Qualifier("name")来指定寻找的类名 @Autowired ...
- Spring注解@Component、@Repository、@Service、@Controller,@Autowired、@Resource用法
一.Spring定义bean,@Component.@Repository.@Service 和 @Controller Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥 ...
随机推荐
- Lenovo E46A-Win 7_无线灯亮但无法启动(耽误3天以上您信吗.....)问题: wlan autoconfig 依赖服务或组无法启动
Lenovo E46A-Win 7_无线灯亮但无法启动(耽误3天以上您信吗.....)问题: wlan autoconfig 依赖服务或组无法启动 提示: windows7 无线连接服务wlan au ...
- .Net中把图片等文件放入DLL中,并在程序中引用
原文:.Net中把图片等文件放入DLL中,并在程序中引用 [摘要] 有时我们需要隐藏程序中的一些资源,比如游戏,过关后才能看到图片,那么图片就必须隐藏起来,否则不用玩这个游戏就可以看到你的图片了,呵呵 ...
- 使用SeekBar办Android调色板
1.接口布局xml代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" x ...
- Jquery动态插入table行
想在一个<table id="table1"></table>标签中动态的插入行,在jquery中可以这样做: $("#table1") ...
- 【足迹C++primer】49、超载,变化,运营商
超载,变化,运营商 Conversion Operators 转换操作符 operator type() const Conversions to an array or a function typ ...
- Meteor入门
转载Meteor入门介绍 Meteor是什么 基于nodejs的实时web APP开发框架. Meteor能带来什么 简单的说,你可以用js搞定客户端.服务端的开发.另外,客户端.服务端的界限被极 ...
- 浅谈 js 正则之 test 方法
原文:浅谈 js 正则之 test 方法 其实我很少用这个,所以之前一直没注意这个问题,自从落叶那厮写了个变态的测试我才去看了下这东西.先来看个东西吧. var re = /\d/; console. ...
- Mac OS X于Android Kernel下载方法
于上一篇日志中,我总结了大家提供的下载Android源代码的方法.这里再简单总结一下内核的下载方法. 參考这里的介绍:http://source.android.com/source/building ...
- HDU 1251 统计拼图 Trie解决问题的方法
基本上找到一个标准前缀的问题是,只需要insert和search它功能. 这里的主要变化是我n该记录方法,这里n国旗代表的不是叶节点,但是话的标志这条道路后的数字. 然后找到需要找到一个词的前缀,假如 ...
- uploadfiy 动态传递Form 参数
参见 百度 http://jingyan.baidu.com/article/a3a3f8118b1c4d8da3eb8a60.html @{ ViewBag.Title = "Ind ...