spring注解:



(1)@Controller   控制器

(2)@Autowired    按照类型匹配,可以完成对类成员变量,方法及构造函数进行标注,完成自动装配的工作   @Autowired(required=false) 在找不到匹配Bean时也不报错

(3)@Qualifier    注释指定注入bean的名称,防止冲突,可以对成员变量、方法入参、构造函数入参进行标注

(4)@Component    通过使用@Component注释类就可以完成bean的定义,使用@Component("beanname") 来指定bean的名称

(5)@Service      通常作用在业务层,但是目前该功能与@Component相同

(6)@Scope        设置bean的类型,原型prototype,单例singleton

(7)@Repository   该注解不只是将类识别为Bean,同时它还能将锁标注的类中抛出的数据访问异常封装为spring的数据访问异常类型





spring MVC注解:

(1)@RestController  @Controller的子类,在开发rest服务时不需要使用@Controller而专门使用@RestController

(2)@RequestMapping(value="get/{id}")   

1)、映射位置,并带参数,既可以作用在类级别,也可以作用在方法级别

2)、@RequestMapping(value="", method="")  value指向请求的实际地址,method指定请求的method类型,GET、POST、PUT、DELETE  例如:@RequestMapping(value="/{day}", method = RequestMethod.GET) 

3)、@RequestMapping(consumes="")  consumes方法指定处理request Content-Type的请求,例如:@RequestMapping(value = "/pets", method = RequestMethod.POST, consumes="application/json"),

方法仅处理request Content-Type为“application/json”类型的请求

4)、@RequestMapping(produces="") produces方法指定处理request请求中Accept头中包含的数据,例如:@RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, produces="application/json")

方法仅处理request请求中Accept头中包含了"application/json"的请求,同时暗示了返回的内容类型为application/json;

5)、@RequestMapping(params="") 处理请求中包含的某个参数,例如:@RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, params="myParam=myValue"),

仅处理请求中包含了名为“myParam”,值为“myValue”的请求;

6)、@RequestMapping(headers="") 仅处理request的header中的某个请求,例如:@RequestMapping(value = "/pets", method = RequestMethod.GET, headers="Referer=http://www.ifeng.com/")

 仅处理request的header中包含了指定“Refer”请求头和对应值为“http://www.ifeng.com/”的请求;

(3)@PathVariable //通过@PathVariable注解来绑定@RequestMapping传过来的值到方法的参数上。例如:

@RequestMapping("/pets/{petId}")  //将@RequestMapping变量中的petId的值绑定到方法的petId上

public void findPet( @PathVariable String petId, Model model) {      

    // implementation omitted  



(4)@RequestHeader  可以把Request请求header部分的值绑定到方法的参数上 例如:public void displayHeaderInfo(@RequestHeader("Accept-Encoding") String encoding,@RequestHeader("Keep-Alive") long keepAlive)

一个request的header部分:

Host                    localhost:8080  

Accept                  text/html,application/xhtml+xml,application/xml;q=0.9  

Accept-Language         fr,en-gb;q=0.7,en;q=0.3  

Accept-Encoding         gzip,deflate  

Accept-Charset          ISO-8859-1,utf-8;q=0.7,*;q=0.7  

Keep-Alive              300

(5)@CookieValue    可以把Request header中关于cookie的值绑定到方法的参数上 例如:public void displayHeaderInfo(@CookieValue("JSESSIONID") String cookie)  即把JSESSIONID的值绑定到参数cookie上

(6)@RequestParam   常用来处理简单类型的绑定,默认为必填参数,类似于request.getParameter(""),

(7)@RequestBody    将 HTTP 请求正文插入方法中,使用适合的HttpMessageConverter将请求体写入某个对象。

(8)@ResponseBody   将内容或对象作为 HTTP 响应正文返回,使用@ResponseBody将会跳过视图处理部分,而是调用适合HttpMessageConverter,将返回值写入输出流。

(9)@ModelAttribute   这个注解和@SessionAttributes配合一起使用,可以将ModelMap中属性的值通过该注解自动赋值给指定变量

(10)@SessionAttributes   将modelMap中指定的属性放到session中。





spring支持由JSR-250规范定义的注解



(1)@Resource      作用与@Autowired类似,只不过@Autowired是按byType自动注入,而@Resource 默认按byName自动注入罢了 

    @Resource 注释的name属性解析为Bean的名字,而type属性则解析为Bean的类型

(2)@PostConstruct   用于方法上,注释的方法将在类初始化后调用,类似于配置文件中的 init-method

(3)@PreDestroy      用于方法上,标注了@PreDestroy的方法将在类销毁前调用





spring 支持由JSR-330规范定义的注解



(1)@Inject  等价于默认的@Autowired,只是没有required属性

(2)@Name    指定Bean名字,对应于Spring自带@Qualifier中的缺省的根据Bean名字注入情况。

(3)@Qualifier    只对应于spring自带@Qualifier限定描述符注解,即只能扩展使用,没有value属性

spring注解关键字的更多相关文章

  1. 【Spring注解驱动开发】聊聊Spring注解驱动开发那些事儿!

    写在前面 今天,面了一个工作5年的小伙伴,面试结果不理想啊!也不是我说,工作5年了,问多线程的知识:就只知道继承Thread类和实现Runnable接口!问Java集合,竟然说HashMap是线程安全 ...

  2. 【Spring注解开发】组件注册-使用@Configuration和@Bean给容器中注册组件

    写在前面 在之前的Spring版本中,我们只能通过写XML配置文件来定义我们的Bean,XML配置不仅繁琐,而且很容易出错,稍有不慎就会导致编写的应用程序各种报错,排查半天,发现是XML文件配置不对! ...

  3. 【Spring注解驱动开发】组件注册-@ComponentScan-自动扫描组件&指定扫描规则

    写在前面 在实际项目中,我们更多的是使用Spring的包扫描功能对项目中的包进行扫描,凡是在指定的包或子包中的类上标注了@Repository.@Service.@Controller.@Compon ...

  4. 【Spring注解驱动开发】自定义TypeFilter指定@ComponentScan注解的过滤规则

    写在前面 Spring的强大之处不仅仅是提供了IOC容器,能够通过过滤规则指定排除和只包含哪些组件,它还能够通过自定义TypeFilter来指定过滤规则.如果Spring内置的过滤规则不能够满足我们的 ...

  5. 【Spring注解驱动开发】使用@Scope注解设置组件的作用域

    写在前面 Spring容器中的组件默认是单例的,在Spring启动时就会实例化并初始化这些对象,将其放到Spring容器中,之后,每次获取对象时,直接从Spring容器中获取,而不再创建对象.如果每次 ...

  6. 【Spring注解驱动开发】使用@Lazy注解实现懒加载

    写在前面 Spring在启动时,默认会将单实例bean进行实例化,并加载到Spring容器中.也就是说,单实例bean默认在Spring容器启动的时候创建对象,并将对象加载到Spring容器中.如果我 ...

  7. 【Spring注解驱动开发】使用@Import注解给容器中快速导入一个组件

    写在前面 我们可以将一些bean组件交由Spring管理,并且Spring支持单实例bean和多实例bean.我们自己写的类,可以通过包扫描+标注注解(@Controller.@Servcie.@Re ...

  8. 【Spring注解驱动开发】在@Import注解中使用ImportSelector接口导入bean

    写在前面 在上一篇关于Spring的@Import注解的文章<[Spring注解驱动开发]使用@Import注解给容器中快速导入一个组件>中,我们简单介绍了如何使用@Import注解给容器 ...

  9. 【Spring注解驱动开发】面试官:如何将Service注入到Servlet中?朋友又栽了!!

    写在前面 最近,一位读者出去面试前准备了很久,信心满满的去面试.没想到面试官的一个问题把他难住了.面试官的问题是这样的:如何使用Spring将Service注入到Servlet中呢?这位读者平时也是很 ...

随机推荐

  1. maven项目管理

    systemPath方式 有些不通用的包,maven仓库没有,只能通过本地包依赖,就像下面方式: 在需要依赖的项目建lib文件夹,如下: 然后在pom.xml项目管理文件里面加入本地依赖,如下 这种情 ...

  2. JAVA面向对象-----抽象类注意细节

    抽象类可以没有抽象方法(java.awt.*的类就是这样子操作的). 抽象类可以继承普通类与抽象类. 抽象类不能直接使用类名创建实例,但是有构造方法,构造方法是让子类进行初始化. 抽象类一定有构造方法 ...

  3. 集合框架之Set接口

    一个不包含重复元素的 collection.更确切地讲,set 不包含满足e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素. 在所有构造方法以及 add.equa ...

  4. 4.1、Android Stuido配置你的Build Variant

    每个版本的build variant代表了你可以构建的每一个版本.虽然你未直接配置build variants,你可以通过配置build type和product flavor. 比如,一个demo的 ...

  5. 【java虚拟机序列】java中的垃圾回收与内存分配策略

    在[java虚拟机系列]java虚拟机系列之JVM总述中我们已经详细讲解过java中的内存模型,了解了关于JVM中内存管理的基本知识,接下来本博客将带领大家了解java中的垃圾回收与内存分配策略. 垃 ...

  6. 对Bitmap的内存优化

    在Android应用里,最耗费内存的就是图片资源.而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常.所以,对于图 ...

  7. Linux中printk()实例

    新建hello.c #include <linux/kernel.h> #include <linux/module.h> int init_module(void) { pr ...

  8. HMM:隐马尔科夫模型-前向算法

    http://blog.csdn.net/pipisorry/article/details/50722376 目标-解决HMM的基本问题之一:已知HMM模型λ及观察序列O,如何计算P(O|λ)(计算 ...

  9. Android的图片,字符串,demin,color,以及Array,boolean,Integer资源的使用-android学习之旅(五十四)

    总体介绍 颜色值的定义 定义字符串,颜色,尺寸资源 字符串 颜色资源 尺寸资源 使用字符串,颜色,尺寸资源 boolean的定义与使用 整形常量的定义与使用 数组资源的定义与使用 图片资源的使用

  10. java设计模式---构建者模式

    创建者模式和工厂模式有点类似,不过关注点不同.工厂模式往往只关心你要的是什么,二不关心这个东西的具体细节是什么.而创建模式则关心的是这个东西的具体细节的创建.拿创建人物来说,我们关心的不仅是创建一个人 ...