当前位置: 首页 > news >正文

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

相关文章:

  • 学习笔记之Python 3 教程
  • iOS APP原生一维码、二维码扫描使用介绍
  • 新的博客
  • tcp/ip 简介
  • TP框架中多条件筛选
  • 使用epoll方式监控键盘等设备输入
  • Pandas时间序列
  • Centos_7安装python-pip
  • 用Libaad2来进行AAC解码
  • libjingle翻译之《Important Concepts(重要概念)之Transports, Channels, and Connections(传输、通道、链接)》...
  • [转载]WCF系列_分布式事务(下)
  • EF基础知识小记五(一对多、多对多处理)
  • 智能语音控制中心 - 树莓派、Nanopi、Orangepi语音识别控制
  • NFS启动时报错Linux NFS:could not open connection for tcp6
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 2017 年终总结 —— 在路上
  • Angular 2 DI - IoC DI - 1
  • Flannel解读
  • Go 语言编译器的 //go: 详解
  • gops —— Go 程序诊断分析工具
  • HTML-表单
  • java中具有继承关系的类及其对象初始化顺序
  • mongodb--安装和初步使用教程
  • Spring核心 Bean的高级装配
  • uni-app项目数字滚动
  • zookeeper系列(七)实战分布式命名服务
  • 高程读书笔记 第六章 面向对象程序设计
  • 高性能JavaScript阅读简记(三)
  • 关于使用markdown的方法(引自CSDN教程)
  • 计算机常识 - 收藏集 - 掘金
  • 理清楚Vue的结构
  • 普通函数和构造函数的区别
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 深度学习入门:10门免费线上课程推荐
  • 中文输入法与React文本输入框的问题与解决方案
  • Mac 上flink的安装与启动
  • zabbix3.2监控linux磁盘IO
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • !$boo在php中什么意思,php前戏
  • # C++之functional库用法整理
  • #1015 : KMP算法
  • $().each和$.each的区别
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (ZT)出版业改革:该死的死,该生的生
  • (编译到47%失败)to be deleted
  • (二)linux使用docker容器运行mysql
  • (二)斐波那契Fabonacci函数
  • (二)学习JVM —— 垃圾回收机制
  • (黑马C++)L06 重载与继承
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (一)kafka实战——kafka源码编译启动
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)ORM