Spring和SpirngMVC的注解详情

来源:互联网 发布:光电转换器淘宝网 编辑:程序博客网 时间:2024/06/05 17:32

Spring的注解:

1.@Service用于标注业务呈组件(业务逻辑层)

2.@Controller用于标注控制层组件(展现层,MVC——>SpringMVC)
3.@Repository用于标注数据访问组件,即DAO组件(数据访问层)
4.@Component泛指组件,当组件不好归类的时候,我们可以使用这个组件进行标注(组件,没有明确的角色)

5.@Autowired默认按类型装配,如果我们想按照名称装配,可以结合@Qualifier注解一起使用(Spring提供的注解)
6.@Resourse默认按名称装配,当找不到与名称匹配的bean才会按类型装配(JSR-250提供的注解)
7.@Configuration把一个类作为IOC的容器,它的某个方法上如果注册了@Bean,就会作为这个Spring容器中的Bean
8.@Scope注解作用域。描述的是Spring容器如何新建Bean的实列。
Singleton:一个容器中只有一个Bean的实列,此为Spring的默认配置,全容器共享一个实例
Prototype:每次调用新建一个Bean的实列 

9.@Configuration声明当前类是一个配置类(相当于一个Spring配置的xml文件)
10.@ComponentScan,自动扫描包名下所有使用@Service,@Component,@Reponsitory和@Controller的类,并注册为Bean。
11.@Bean,注解在方法上,声明当前方法的返回值为一个Bean。
----------------------------------------------------------------------------------------------------------------------------------------------
12.@EnableAspectJAutoProxy,注解开启Spring对AspectJ的支持
13.@EnableAsync注解开启异步任务支持
14.@EnableScheduling开启计划任务的支持
----------------------------------------------------------------------------------------------------------------------------------------------
15.@EnableWebMvc开启 Web MVC 的配置支持

----------------------------------------------------------------------------------------------------------------------------------------------
16.@EnableConfigurationPropeoties开启对@ConfugurationProperties注解配置Bean的支持
17.@EnableJpaRepositories开启对Spring Data JPA Reposititory的支持
18.@EnableTransactionManagement开启注解式事务的支持

19.@EnableCaching开启注解式的缓存支持

SpringMVC的注解:

1.@Controller,在SpringMVC中,控制器Controller负责处理由DispatcherServlet分发的请求,它把用户请求的数据经业务层处理之后封装成一个Model,然后在把该Model返会给对应的View进行展示。
在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,
然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。
此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到
2.@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。
@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。
单单使用@Controller 标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。那么要如何做Spring 才能认识它呢?
这个时候就需要我们把这个控制器类交给Spring 来管理。有两种方式:
(1)在SpringMVC 的配置文件中定义MyController 的bean 对象。
(2)在SpringMVC 的配置文件中告诉Spring 该到哪里去找标记为@Controller 的Controller 控制器。

3.@RequestMapping
                        RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
RequestMapping注解有六个属性,下面我们把她分成三类进行说明(下面有相应示例)。
1、 value, method;
value:     指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);
method:  指定请求的method类型, GET、POST、PUT、DELETE等;
2、consumes,produces
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces:    指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
3、params,headers
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

4.@Resource和@Autowired
       @Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。
5.@ModelAttribute和 @SessionAttributes
代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法,可用于注解和方法参数中,
可以把这个@ModelAttribute特性,应用在BaseController当中,所有的Controller继承BaseController,即可实现在调用Controller时,先执行@ModelAttribute方法。
@SessionAttributes即将值放到session作用域中,写在class上面。


阅读全文
1 0
原创粉丝点击