Spring之使用Annotation注解开发项目

我们也可以使用Annotation来实现注入操作,提高我们写代码的灵活性和效率。spring中要使用annotation,需要在配置文件中增加:

 

<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/beans   

  http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   

   http://www.springframework.org/schema/context   

   http://www.springframework.org/schema/context/spring-context-2.5.xsd">   

  

<context:component-scan  base-package="com.bjsxt"/>   

</beans> 

 

 

我们只需要在相关类的属性前或者set方法前增加:

} @Resource (推荐) 

◦ 默认按名称装配

} @AutoWired(不推荐) 

◦ 默认按类型装配。根据属性类型,在容器中跟该类型匹配的bean。

} 示例:

@Resource(name="userDao2")  //不指定名字,默认就是属性名。一般不需单独指定 

userSeviceImpl中代码如下:

public class UserServiceImpl implements UserService {

 

@Resource

private UserDao userDao;    // = new UserDaoImpl();

 

@Override

public void add(User user) {

userDao.add(user);

}

 

public UserDao getUserDao() {

return userDao;

}

 

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

 

}

 

 

@Resource用法总结:

按照名字装配

@Resource(name="ud")

private UserDao userDao;

直接找nameudbean

@Resource

private UserDao userDao;

直接找nameuserDaobean

如果找到这个bean,则注入;如果没有name=userDaobean,则找接口UserDao下得唯一实现类。如果接口UserDao有多个实现类,则抛出异常。

按照类型装配

@Resource(type=UserDaoImpl.class)

private UserDao userDao;

按照类型装配。

 

IOC容器管理的bean作用域

IOC容器中的bean,我们可以使用单例模式、也可以使用工厂模式。甚至可以将bean放入requestsession等作用域中。那么,如何处理bean?我们可以通过<bean>的scope属性设置,默认为singleton。

 

作用域 

说明 

singleton(默认) 

一个bean类型对应一个对象 

prototype 

一个bean类型对应多个对象。每次从容器中取到的对象都是新对象 

request 

在基于webspring  applicationcontext才有效。 

session 

global  session 

 

 

自动扫描将bean纳入IOC容器管理(spring2.5新增)

spring  2.5新增自动扫描bean的功能,大大简化了配置文件中的配置内容。将程序员从繁琐的配置中解放出来!xml文件需要增加声明:

 

<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/beans    

  http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    

   http://www.springframework.org/schema/context   

   http://www.springframework.org/schema/context/spring-context-2.5.xsd">   

  

  <context:component-scan  base-package="com.sxt"/> 

    <!-- 有了本配置,<context:annotation-config />可以不要。 -->

    <!-- 会扫描该包下的子类,以及该包子包下的子类 -->

</beans> 

 

配置<bean>的根本目的,就是让spring容器知道这个bean是要加载的。我们也可以通过注解来实现让spring知道哪些bean需要加载。

◦ @Service:标记业务层bean 

◦ @Controller:标记控制层,比如:struts中的Action 

◦ @Repository:标记数据访问组件,即DAO类

◦ @Component:当组件不好归类时使用该标记

 

为我们相关类增加注解后,spring会自动扫描com.sxt包及该包下所有子类!这样就将我们从繁琐的配置文件配置中解放出来! 让我们使用spring更加简单!

转载于:https://www.cnblogs.com/quchengfeng/p/4112609.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值