Spring注解笔记

@Constroller 通常作用在控制层,但是目前该功能与 @Component 相同

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

@Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。

@Repository与这三个注解除了作用于不同软件层次的类,其使用方式是完全相同的。

@PostConstruct和@PreDestroy注释却可以指定多个初始化 / 销毁方法

@Resource  byName byType  = @Autowired byName @Qualifier byType

@Scope 指定 Bean 的作用范围 

      singleton:定义bean的范围为每个spring容器一个实例(默认值)

      prototype:定义bean可以被多次实例化(使用一次就创建一次)

      request:定义bean的范围是http请求(springMVC中有效)

      session:定义bean的范围是http会话(springMVC中有效)

      global-session:定义bean的范围是全局http会话(portlet中有效)

@RequestMapping

@RequestParam

@ModelAttribute  声明在属性上,表示该属性的value 来源于model 里"queryBean" ,并被保存到model 里@ModelAttribute声明在方法上,表示该方法的返回值被保存到model 里

@Cacheable :声明一个方法的返回值应该被缓存。例如:@Cacheable(modelId = "testCaching")

@CacheFlush :声明一个方法是清空缓存的触发器。例如:@CacheFlush(modelId = "testCaching")

@SessionAttributes Spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到 session 中,以便下一个请求属对应的 ModelMap 的属性列表中还能访问到这些属性。

@InitBinder  如果希望某个属性编辑器仅作用于特定的 Controller ,可以在 Controller 中定义一个标注 @InitBinder 注解的方法,可以在该方法中向 Controller 了注册若干个属性编辑器。

@ Required              

                    负责检查一个bean在初始化时其声明的 set方法是否被执行,当某个被标注了@Required 的 Setter 方法没有被调用,则 Spring 在解析的时候会抛出异常,以提醒开发者对相应属性进行设置。 @Required 注解只能标注在 Setter 方法之上。因为依赖注入的本质是检查 Setter 方法是否被调用了,而不是真的去检查属性是否赋值了以及赋了什么样的值。如果将该注解标注在非 setXxxx() 类型的方法则被忽略。

@Value:注入SpEL表达式

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

@Named:指定Bean名字,对应于Spring自带@Qualifier中的缺省的根据Bean名字注入情况

@PersistenceContext @PersistenceUnit 用于注入EntityManagerFactory和EntityManager

@Condition 注入bean的时候要什么条件,才能注入进去

你可能感兴趣的:(Spring注解笔记)