Spring注解
来源:互联网 发布:c语言打印双层金字塔 编辑:程序博客网 时间:2024/04/29 18:07
1. 在applicationContext.xml中配置
<context:component-scan base-package="ray.service,ray.serviceImpl"></context:component-scan>
1、@Component
@Component
是所有受Spring 管理组件的通用形式,@Component注解可以放在类的头上,@Component不推荐使用。
2、@Controller
@Controller对应表现层的Bean,也就是Action,例如:
1 @Controller2 @Scope("prototype")3 public class UserAction extends BaseAction<User>{4 ……5 }
使用@Controller注解标识UserAction之后,就表示要把UserAction交给Spring容器管理,在Spring容器中会存在一个名字为"userAction"的action,这个名字是根据UserAction类名来取的。注意:如果@Controller不指定其value【@Controller】,则默认的bean名字为这个类的类名首字母小写,如果指定value【@Controller(value="UserAction")】或者【@Controller("UserAction")】,则使用value作为bean的名字。
这里的UserAction还使用了@Scope注解,@Scope("prototype")表示将Action的范围声明为原型,可以利用容器的scope="prototype"来保证每一个请求有一个单独的Action来处理,避免struts中Action的线程安全问题。spring 默认scope 是单例模式(scope="singleton"),这样只会创建一个Action对象,每次访问都是同一Action对象,数据不安全,struts2 是要求每次次访问都对应不同的Action,scope="prototype" 可以保证当有请求的时候都创建一个Action对象
3、@ Service
@Service对应的是业务层Bean,例如:
1 @Service("userService")2 public class UserServiceImpl implements UserService {3 ………4 }
@Service("userService")注解是告诉Spring,当Spring要创建UserServiceImpl的的实例时,bean的名字必须叫做"userService",这样当Action需要使用UserServiceImpl的的实例时,就可以由Spring创建好的"userService",然后注入给Action:在Action只需要声明一个名字叫“userService”的变量来接收由Spring注入的"userService"即可,具体代码如下:
1 // 注入userService2 @Resource(name = "userService")3 private UserService userService;
4、@ Repository
@Repository对应数据访问层Bean ,例如:
1 @Repository(value="userDao")2 public class UserDaoImpl extends BaseDaoImpl<User> {3 ………4 }
@Repository(value="userDao")注解是告诉Spring,让Spring创建一个名字叫“userDao”的UserDaoImpl实例。
当Service需要使用Spring创建的名字叫“userDao”的UserDaoImpl实例时,就可以使用@Resource(name = "userDao")注解告诉Spring,Spring把创建好的userDao注入给Service即可。
1 // 注入userDao,从数据库中根据用户Id取出指定用户时需要用到2 @Resource(name = "userDao")3 private BaseDao<User> userDao;
- spring注解--组合注解
- Spring注解
- Spring注解
- Spring注解
- Spring注解
- Spring注解
- Spring 注解
- Spring注解
- Spring注解
- Spring注解
- spring 注解
- spring 注解
- spring注解
- Spring 注解
- Spring 注解
- spring 注解
- spring 注解
- spring 注解
- Android Build 系统
- UVALive 7512 November 11th(脑洞)
- Python内嵌函数的访问方法
- Android实现指定控件区域截屏
- [JAVA]学习笔记(三)——访问权限控制
- Spring注解
- HDU 1196 Lowest Bit(基础题,有个小技巧)
- ubuntu 软件管理软件
- Android应用支持转移到SD卡
- ATS 概述
- Android Studio引用fresco编译问题的处理
- HDU2192建房子
- 网站SEO需要了解用户群体
- 2016/03/29