spring 注解

原创 2012年03月26日 13:24:37

注解配置

<context:annotation-config/>和
<context:aomponent-scan base-package="需要实现注入的类所在包"/>
<context:annotationconfig/>隐式地向spring容器注册
  AutowiredAnnotationBeanPostProcessor、
CommonAnnotationBeanPostProcessor、
PerSistenceAnnotationBeanPostProcessor、
RequiredAnnotationBeanPostProcessor、
 这四个BeanPostProcessor

声明bean

@Component 泛指组件

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

@Repository 持久层

持久层组件,用户标注数据库访问组件。(例如:Dao组件)

@Service 业务层

业务层组件。(例如:Service组件)

@Controller 控制层

控制层组件。(例如:struts的Action)
例子:
@Service
public class MyService implements IMyService{
}
@Repository("myDao")
public class MyDao implements IMyDao{
}

@Scope  定义bean作用范围

1、singleton :定义bean的范围为每个Spring容器一个实例(默认值)
2、Prototype :允许 多次实例化(使用一次创建一次实例)
3、request :定义bean的范围是HTTP请求。只有在使用web能力的 Spring上下文是才有效
4、session :定义bean的范围是HTTP会话。只有在使用web能力的 Spring上下文是才有效
5、global-session :定义bean的范围是全局HTTP会话。只有在portlet上下文中才有效
demo
@Scope("session")  
@Component()  
public class UserSessionBean implements Serializable {  
    

注入bean

@Autowired (建议使用@Resource)

可以对成员变量、方法和构造函数进行标注,完成自动装配的工作。
(注:要使@Autowired能够工作,需要在配置文件中加入以下代码)
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />
例子:
public class UserServiceImpl implements UserService {  
    @Autowired  
    private UserDao userDao;  
    ...  
}  

public class UserServiceImpl implements UserService {  
    private UserDao userDao;  
    @Autowired  
    public void setUserDao(UserDao userDao) {  
        this.userDao = userDao;  
    }  
    ...  
}  

@Qualifier 制定注入bean的名称

@Qualifier只能和@Autowired结合使用,是对@Autowired有益的补充。
例子:
@Autowired
public void setUserDao(@Qualifier("userDao") UserDao userDao) {
	this.userDao = userDao;
}

@Resource  代替Spring的@Autowired注解

@Resource的作用相当于@Autowired,只不过@Autowired按照byType自动注入,而@Resource默认按照byName自动注入。
@Resource两个属性:1、name   2、type 默认byName自动注入策略。

@PostConstruct 

bean初始化之后被Spring容器执行。
典型应用:往bean中注入父类中的属性,而又无法重写父类的属性或者和属性的setter方法。
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
	private SessionFactory mySessionFacotry;
	@Resource
	public void setMySessionFacotry(SessionFactory sessionFacotry) {
		this.mySessionFacotry = sessionFacotry;
	}
	@PostConstruct
	public void injectSessionFactory() {
		super.setSessionFactory(mySessionFacotry);
	}
}

@PreDestroy

Bean初始化之后被Spring容器执行。
例子:
// 相当于在XML中配置了destroy-method
@PreDestroy
public void destory() {
    System.out.println("destory.");
}







版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Spring非注解方式学习

  • 2015-08-06 16:55
  • 36KB
  • 下载

Spring3.0 注解入门

一、各种注解方式 1. @Autowired注解(不推荐使用,建议使用@Resource) @Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。@Autowi...

spring3.0MVC注解[附实例]

  • 2015-11-05 15:08
  • 374KB
  • 下载

spring-aop和注解的实例

  • 2017-01-13 17:33
  • 10KB
  • 下载

Spring 使用注解方式进行事务管理

Spring 使用注解方式进行事务管理 使用步骤: 步骤一、在spring配置文件中引入命名空间  xmlns:xsi="http://www.w3.org/2001/XMLSche...

spring定时任务详解(@Scheduled注解)

在springMVC里使用spring的定时任务非常的简单,如下: (一)在xml里加入task的命名空间 xmlns:task="http://www.springframework.org/sc...

Spring3_MVC注解教程

  • 2014-11-19 10:45
  • 1.42MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)