zoukankan      html  css  js  c++  java
  • spring常用注解

    使用注解之前要开启自动扫描功能

    其中base-package为需要扫描的包(含子包)。

    1
    <context:component-scan base-package="cn.test"/>

    @Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
    @Scope注解 作用域
    @Lazy(true) 表示延迟初始化
    @Service用于标注业务层组件、 
    @Controller用于标注控制层组件(如struts中的action)
    @Repository用于标注数据访问组件,即DAO组件。
    @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
    @Scope用于指定scope作用域的(用在类上)

    ---------------jsr250----
    @PostConstruct用于指定初始化方法(用在方法上)
    @PreDestory用于指定销毁方法(用在方法上)

    @Resource 默认按名称装配,当找不到与名称匹配的bean才会按类型装配。

    ----------
    @DependsOn:定义Bean初始化及销毁时的顺序
    @Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常
    @Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:
    @Autowired @Qualifier("personDaoBean") 存在多个实例配合使用

    @PostConstruct 初始化注解
    @PreDestroy 摧毁注解 默认 单例  启动就加载??
    @Async异步方法调用,需要添加以下代码:

    1
    2
    3
    4
    5
    <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <property name="corePoolSize" value="10"/>
    <property name="maxPoolSize" value="300"/>
    </bean>
    <task:annotation-driven/>

     为了让@Async注解能够生效,还需要在Spring Boot的主程序中配置@EnableAsync

       在Spring中,基于@Async标注的方法,称之为异步方法;

       这些方法将在执行的时候,将会在独立的线程中被执行,

      调用者无需等待它的完成,

       即可继续其他的操作。

    @Async所修饰的函数不要定义为static类型,这样异步调用不会生效

    @ComponentScan(basePackages = "com.xzc.")
    @EnableAutoConfiguration
    @SpringBootApplication
    @PropertySource({"classpath:application.properties", "classpath:xzc.properties"})
    @ImportResource("classpath:ws-client.xml")
    @EnableRedisHttpSession
    @EnableAspectJAutoProxy
    @EnableCaching
    @EnableAsync
    @Configuration
    @EnableScheduling 启动定时任务


    @Entity注释指名这是一个实体Bean 

    1、 @PathVariable 

    当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上

    1. @Controller  
    2. @RequestMapping("/owners/{ownerId}")  
    3. public class RelativePathUriTemplateController {  
    4.   
    5.   @RequestMapping("/pets/{petId}")  
    6.   public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {      
    7.     // implementation omitted  
    8.   }  

    上面代码把URI template 中变量 ownerId的值和petId的值,绑定到方法的参数上。

    若方法参数名称和需要绑定的uri template中变量名称不一致,需要在@PathVariable("name")指定uri template中的名称。

    Spring 4.2新特性-使用@Order调整配置类加载顺序

    ----------------------------------------------------

    lombok 简化java代码注解 理解

    lombok 注解:
        lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。
        Lombok 注解在线帮助文档:http://projectlombok.org/features/index.
        下面介绍几个我常用的 lombok 注解:
            @Data   :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
            @Setter:注解在属性上;为属性提供 setting 方法
            @Getter:注解在属性上;为属性提供 getting 方法
            @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
            @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法

            @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

     本文转自:http://www.cnblogs.com/xingzc/p/5777814.html

  • 相关阅读:
    OCS边缘服务器部署(包含ISA设置)
    RMS部署文档
    推荐软件:PowerShell Plus
    OCS排错工具和最佳实践
    在Exchange Server 2007中使用多主机名称证书
    OCS边缘服务器部署
    推荐软件:Quset PowerGUI
    ISA 2008(FOREFRONT TMG)安装体验
    gridview 删除确认
    标识列 在任意编号位置插入数据
  • 原文地址:https://www.cnblogs.com/panxuejun/p/7623823.html
Copyright © 2011-2022 走看看