Spring注解

来源:互联网 发布:php从数据库读取数据 编辑:程序博客网 时间:2024/06/05 14:19

注解介绍

注解有两个作用:标注和注入

  • 标注:类路径下自动扫描,减少在xml中配置bean,例如@Component,@Service
  • 注入:自动装配,需要类的地方直接加注解就可以引入该类;例如:@Autowired
  • 在spring中开启注解:<context:compnnent-scan base-package="...">指定扫描路径
  • spring生成的注解有默认名字,为类名的首字母小写形式,如果要指定自定义的需要类似@Service(“xxx”)来指定
  • Spring中的bean,默认是singleton,即生成的对象是全局单例的,如果要改,需要@scope(“prototype”)指明,scope可以选择:singleton、prototype、request、session、global session;
  • 可以用ApplicationContext.getBean(“zoo”),来获取Zoo.java类

常见注解分类

Spring中有如下几种分类:

  1. Spring原生:Required、Autowired、value、Qualifier、Component及其扩展的Repository、Service、Controller
  2. JSR-250:Resource、PostConstruct、Predestroy
  3. JSR-330:inject、Named、Qualifier
  4. JPA注解:PersistentContext、PersistenceUnit
  5. Springmvc注解:RequstBody、RequastParam、ResponseBody,ResponseParam,Pathvariable,ModelAttribute;

常用注解

  1. Component:标注组件,与持久层的Repository、业务层的Service、控制层的Controller功能一样,加上注解可以让Spring找到相应的类,在对组件不好分类的时候,用Component注解来标识;
  2. Autowired:是Spring的注解,自动注入类,需要Spring去配置文件中找(或者上下文找标注过的类)相应的Bean,如果找不到会报错,可以用@Autowired(required=false)来设置找不到不报错,返回null
  3. Resource:与Autowired功能相似,默认通过name来匹配,是J2EE的注解,可以指定按照type来匹配@Resource(type=xxx.class)

Springmvc注解

  1. ResponseBody:使用在方法上,返回json格式的数据,直接输入到Http response body中;
  2. RequestBody:使用在参数前,标注对象,Spring完成对象-协议之间的转化,解析post data body,然后绑定到相应的bean上;支持application/json或者application/xml协议格式;与ResponseBody一样,是由HandlerAdapter配置的HttpMessageConverter在对象和协议之间转化的;
  3. RequstParam:获取参数,对于简单类型的绑定,对应的content-type为application/x-www-form-urlencoded,即form表单提交的数据;
  4. PathVariable:接收路径参数
    5.RestController:是Controller和Response两个注解的组合;
  5. ModelAttribute:渲染model,model可以看做是一个map,改注解的作用是用来传递和保存数据,可以使用在方法上和参数上;
    • 使用在方法上,则这个方法在@RequestMapping方法调用之前,在model中填充属性,例如填充下拉列表,用来在request的model里put(“小写开头的类名”,类名),该model就是标注方法的返回值;
    • 使用在参数上,数据绑定,将相应名称的值绑定到注解的参数bean上,绑定源查找顺序:SessionAttribute注解、ModelAttribute注解、new一个新的实例;
  6. HttpEntity,除了能获得request和response之外,能访问请求和响应头,使用getHeaders和getBody()

参考

Spring常用注解标签详解
Spring常用注解汇总

原创粉丝点击