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框架xml注解配置方式实例

  • 2017年03月20日 12:48
  • 3KB
  • 下载

spring-aop和注解的实例

  • 2017年01月13日 17:33
  • 10KB
  • 下载

Spring Boot学习笔记----mybatis注解(一)

之前使用jpa,感觉不错。不用涉及sql便可完成对数据库的增删改查。但项目组要求使用mybatis进行开发,也就用了。两者的区别在于,后者需要进行SQL语句的注解绑定。 网上搜到的mybatis资料...

spring mvc常用注解用法说明

  • 2015年08月26日 09:49
  • 50KB
  • 下载

Spring非注解方式学习

  • 2015年08月06日 16:55
  • 36KB
  • 下载

spring mvc 自定义注解ResponseEncryptBody、RequestDecryptBody统一处理加密、解密数据,供移动端使用的rest服务

spring mvc 自定义注解ResponseEncryptBody、RequestDecryptBody统一处理加密、解密数据,供移动端使用的rest服务 自定义两个注解: /** * 类似...

Spring3_MVC注解教程

  • 2014年11月19日 10:45
  • 1.42MB
  • 下载

Spring3注解

  • 2015年01月19日 13:24
  • 2.56MB
  • 下载

spring的@Transactional注解详细用法

概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。 Spring Framework对事务管理提供了一致的抽象,其特点如下: 为不同的事务API提供...

Spring3_MVC注解

  • 2014年09月10日 11:50
  • 2.62MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring 注解
举报原因:
原因补充:

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