Spring的注解详解

Spring的注解详解

ID:37896017

大小:69.00 KB

页数:7页

时间:2019-06-02

Spring的注解详解_第1页
Spring的注解详解_第2页
Spring的注解详解_第3页
Spring的注解详解_第4页
Spring的注解详解_第5页
资源描述:

《Spring的注解详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Spring的注解一、spring注解1、@Autowired注入注解@Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装工作。@Autowired的标注位置不同,它们都会在Spring在初始化这个bean时,自动装配这个属性。@Autowired是根据类型进行自动装配的。例如,如果当Spring上下文中存在不止一个UserDao类型的bean时,就会抛出BeanCreationException异常。如果Spring上下文中不存在UserDao类型的bean,也会抛出BeanCreationException异常。我们可以使用@Qualifier配合@Autowir

2、ed来解决这些问题。1.public class TestController {  2.3.@Autowired4.@Qualifier(“userDao”)5.PrivateUserServiceuserService;6.7. @RequestMapping("/showView")  8. public ModelAndView showView(){  9.    ModelAndView modelAndView = new ModelAndView();10.    modelAndView.setViewName("viewName");  11.    modelAnd

3、View.addObject("属性名称","属性值");12.    return modelAndView;13. }14.}2、@Resource注入注解JSR-250标准注解,推荐使用它来代替Spring专有的@Autowired注解。@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按byName自动注入罢了。@Resource有两个属性是比较重要的,分别是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用nam

4、e属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。3、@Component注解(不推荐使用)只需要在对应的类上加上一个@Component注解,就将该类定义为一个Bean了。Spring还提供了更加细化的注解形式:@Repository、@Service、@Controller,它们分别对应存储层Bean,业务层Bean,和展示层Bean。在Spring版本(2.5)中,这些注解与@Component的语义是一样的,完全通用,在Spring以后的版本中可能

5、会给它们追加更多的语义。所以,我们推荐使用@Repository、@Service、@Controller来替代@Component。4、@Controller控制层注解通过@controller标注即可将class定义为一个controller类,Spring的Controller是Singleton的。这就意味着会被多个请求线程共享。因此,我们将控制器设计成无状态类。1.@Controller2.@RequestMapping("/test")  3.public class TestController {  4.5. @RequestMapping("/showView")  6

6、. public ModelAndView showView(){  7.    ModelAndView modelAndView = new ModelAndView();8.    modelAndView.setViewName("viewName");  9.    modelAndView.addObject("属性名称","属性值");10.    return modelAndView;  11. } 12.}5、@Service业务层注解通过@service标注即可将class定义为一个service类,比如在一个Student实现类上加上@Service("stude

7、nt"),括号里面就是给实例化后的Student对象取的名字。这是在你一个接口有多个实现类的情况下区分实现类的方式。比如Student实现了Person接口,在你的controller里面@AutowiredPerson时,假如这时Person还有另一个实现类User,为了确定实例化Student还是User,@Service括号里面的名称就有用了。1.@Autowired2.@Qualifier("student")3.priva

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。