• 技术文章 >Java >java教程

    spring都有什么注解

    (*-*)浩(*-*)浩2019-05-16 14:35:04原创708
    spring 注解可以减少xml配置;注释配置相对于 XML 配置具有很多的优势:它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。

    推荐课程:Java教程

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

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

    <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异步方法调用,需要添加以下代码:

    <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

    @SuppressWarnings注解?

    1、 @PathVariable

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

    @Controller  
    @RequestMapping("/owners/{ownerId}")  
    public class RelativePathUriTemplateController {  
    
    @RequestMapping("/pets/{petId}")  
    public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {      
        // implementation omitted  
        }  
    }

    上面代码把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:注解在类上;为类提供一个全参的构造方法

    ==================================

    以上就是spring都有什么注解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java spring
    上一篇:为什么vs不支持java 下一篇:java语言的特点是什么
    PHP编程就业班

    相关文章推荐

    • springboot异步调用的介绍(附代码)• springboot常用注解有哪些• Spring MVC不能正常获取参数的值的解决方法(附代码)• spring使用了什么模式

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网