声明Bean的注解:
  • @Component : 组件,没有明确的角色
  • @Service : 在业务逻辑层(service层)使用
  • @Repository : 在数据访问层(dao层)使用.
  • @Controller : 在展现层(MVC--SpringMVC)使用
注入Bean的注解:
  • @Aautowired : Spring提供的注解.
  • @Inject : JSR-330提供的注解
  • @Resource : JSR-250提供的注解
配置文件的注解:
  • @Configuration : 声明当前类是个配置类,相当于一个Spring配置的xml文件.
  • @ComponentScan (cn.test.demo): 自动扫描包名下所有使用 @Component @Service  @Repository @Controller 的类,并注册为Bean
  • @WiselyConfiguration : 组合注解 可以替代 @Configuration和@ComponentScan
  • @Bean : 注解在方法上,声明当前方法的返回值为一个Bean.
    • @Bean(initMethod="aa",destroyMethod="bb")--> 指定 aa和bb方法在构造之后.Bean销毁之前执行.
AOP切面编程注解:
  • @Aspect : 声明这是一个切面
  • @After @Before. @Around 定义切面,可以直接将拦截规则(切入点 PointCut)作为参数
  • @PointCut : 专门定义拦截规则 然后在 @After @Before. @Around 中调用
  • @Transcational : 事务处理
  • @Cacheable : 数据缓存
  • @EnableAaspectJAutoProxy : 开启Spring 对 这个切面(Aspect )的支持
  • @Target (ElementType.TYPE):元注解,用来指定注解修饰类的那个成员 -->指定拦截规则
  • @Retention(RetentionPolicy.RUNTIME)
    • --->当定义的注解的@Retention为RUNTIME时,才能够通过运行时的反射机制来处理注解.-->指定拦截规则
Spring 常用配置:
  • @import :导入配置类
  • @Scope : 新建Bean的实例 @Scope("prototype") 声明Scope 为 Prototype
  • @Value : 属性注入
    • @Value ("我爱你")  --> 普通字符串注入
    • @Value ("#{systemProperties['os.name']}") -->注入操作系统属性
    • @Value ("#{ T (java.lang.Math).random()  * 100.0 }") --> 注入表达式结果
    • @Value ("#{demoService.another}") --> 注入其他Bean属性
    • @Value ( "classpath:com/wisely/highlight_spring4/ch2/el/test.txt" ) --> 注入文件资源
    • @Value ("http://www.baidu.com")-->注入网址资源
    • @Value ("${book.name}" ) --> 注入配置文件  注意: 使用的是$ 而不是 #
  • @PostConstruct : 在构造函数执行完之后执行
  • @PreDestroy  : 在 Bean 销毁之前执行
  • @ActiveProfiles : 用来声明活动的 profile
  • @profile: 为不同环境下使用不同的配置提供了支持
    • @Profile("dev") .......对方法名为 dev-xxxx的方法提供实例化Bean
  • @EnableAsync : 开启异步任务的支持(多线程)
  • @Asyns : 声明这是一个异步任务,可以在类级别 和方法级别声明.
  • @EnableScheduling : 开启对计划任务的支持(定时器)
  • @Scheduled : 声明这是一个计划任务 支持多种计划任务,包含 cron. fixDelay fixRate
    • @Scheduled (dixedDelay = 5000) 通过注解 定时更新
  • @Conditional : 条件注解,根据满足某一特定条件创建一个特定的Bean
  • @ContextConfiguration : 加载配置文件
    • @ContextConfiguration(classes = {TestConfig.class})
    • @ContextConfiguration用来加载ApplicationContext
    • classes属性用来加载配置类
  • @WebAppCofiguration : 指定加载 ApplicationContext是一个WebApplicationContext
@Enable*注解:
  • @EnableAsync : 开启异步任务的支持(多线程)
  • @EnableScheduling : 开启对计划任务的支持(定时器)
  • @EnableWebMVC : 开启对Web MVC 的配置支持
  • @EnableAaspectJAutoProxy : 开启Spring 对 这个切面(Aspect )的支持
  • @EnableConfigurationProperties 开启对@ConfigurationProperties注解配置Bean的支持
  • @EnableJpaRepositories : 开启对Spring Data JAP Repository 的支持
  • @EnableTransactionManagement 开启对注解式事物的支持
  • @EnableCaching开启注解是缓存的支持.
  • @EnableDiscoveryClient 让服务发现服务器,使用服务器.Spring cloud 实现服务发现
  • @EnableEurekaServer 注册服务器 spring cloud 实现服务注册@
  • @EnableScheduling 让spring可以进行任务调度,功能类似于spring.xml文件中的命名空间<task:*>
  • @EnableCaching 开启Cache缓存支持;
SpringMVC 常用注解:
  • @Controller : 注解在类上 声明这个类是springmvc里的Controller,将其声明为一个spring的Bean.
  • @RequestMapping :可以注解在类上和方法上 映射WEB请求(访问路径和参数)
    • @RequestMapping(value= "/convert",produces+{"application/x-wisely"}) 设置访问URL 返回值类型
  • @ResponseBody : 支持将返回值放入response体内 而不是返回一个页面(返回的是一个组数据)
  • @RequestBody : 允许request的参数在request体中,而不是直接连接在地址后面 次注解放置在参数前
  • @Path Variable : 用来接收路径参数 如/test/001,001为参数,次注解放置在参数前
  • @RestController : @Controller + @ResponseBody 组合注解
  • @ControllerAdvice : 通过@ControllerAdvice可以将对已控制器的全局配置放置在同一个位置
  • @ExceptionHandler : 用于全局处理控制器的异常
    • @ExceptionHandier(value=Exception.class) -->通过value属性可过滤拦截器条件,拦截所有的异常
  • @InitBinder : 用来设置WebDataBinder , WebDataBinder用来自动绑定前台请求参数到Model中.
  • @ModelAttrbuute : 绑定键值对到Model中,
  • @RunWith : 运行器
    • @RunWith(JUnit4.class)就是指用JUnit4来运行
    • @RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境
    • @RunWith(Suite.class)的话就是一套测试集合,
  • @WebAppConfiguration("src/main/resources") : 注解在类上,用来声明加载的ApplicationContex 是一个WebApplicationContext ,它的属性指定的是Web资源的位置,默认为
    src/main/webapp ,自定义修改为 resource
  • @Before : 在 xxx 前初始化
Spring Boot 注解:
  • @SpringBootApplication : 是Spring Boot 项目的核心注解 主要目的是开启自动配置
    • @SpringBootApplication注解是一个组合注解,主要组合了@Configuration .+@EnableAutoConfiguration.+@ComponentScan
  • @Value : 属性注入,读取properties或者 Yml 文件中的属性
  • @ConfigurationProperties : 将properties属性和一个Bean及其属性关联,从而实现类型安全的配置
    • @ConfigurationProperties(prefix = "author",locations = {"classpath:config/author.properties"})
    • 通过@ConfigurationProperties加载配置,通过prefix属性指定配置前缀,通过location指定配置文件位置
  • @EnableAutoConfiguration 注解:作用在于让 Spring Boot   根据应用所声明的依赖来对 Spring 框架进行自动配置
            这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。
  • @ Configuration @EnableAutoConfiguration
    (exclude={xxxx.class}) 禁用特定的自动配置
  • @SpringBootApplication   注解等价于以默认属性使用
    @Configuration,@EnableAutoConfiguration和     @ComponentScan。
@SuppressWarnings注解
  • @SuppressWarnings("unchecked")
    • 告诉编译器忽略 unchecked 警告信息,如使用 list ArrayList等未进行参数化产生的警告信息
  • @SuppressWarnings("serial")

    • 果编译器出现这样的警告信息: The serializable class WmailCalendar does not declare a
      static final serialVersionUID field of type long     使用这个注释将警告信息去掉。
  • @SuppressWarnings("deprecation")
    • 如果使用了使用@Deprecated注释的方法,编译器将出现警告信息。使用这个注释将警告信息去掉。
  • @SuppressWarnings("unchecked", "deprecation")
    • 告诉编译器同时忽略unchecked和deprecation的警告信息。
  • @SuppressWarnings(value={"unchecked", "deprecation"})
    • 等同于@SuppressWarnings("unchecked", "deprecation")
案例
@Entity
@Table(name =
"S_PRODUCEINFO"
)
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
ProduceInfoEntity {
    @Id
    @Column(name
=
"app_name", unique =
true, length = 50)
    private
String
name;
    @Column(name
=
"status")
    @Enumerated(EnumType.
STRING)
    private
ProduceStatus
status;
    @Column(name
=
"create_time", updatable =
false)
    @Temporal(TemporalType.
TIMESTAMP)
    @CreationTimestamp
    private
Date
createTime;
    @Column(name
=
"update_time")
    @Temporal(TemporalType.
TIMESTAMP)
    @UpdateTimestamp
    private
Date
updateTime;
@Entity : 映射数据库实体类
@Table(name =
"S_PRODUCEINFO"
) : 表名为 "S_PRODUCEINFO"
@Id : 声明主键ID
@Column(name =
"app_name", unique =
true, length = 50) :对应数据库字段,属性
@Enumerated(EnumType.
STRING) : 采用枚举值类型和数据库字段进行交互
 
@Temporal : 时间格式 映射数据库会得到规定时间格式的日期
       @Enumerted(EnumType.STRING)  HH:MM:SS 格式的日期
      
@Enumerted(EnumType.DATE) 获取年月日  yyyy-MM-dd 

@Enumerted(EnumType.TIME)
获取时分秒  HH:MM:SS

Spring 注解学习笔记的更多相关文章

  1. Spring注解学习笔记一

    一.Retention注解Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值: 1.RetentionPolicy.SOURCE —— 这种类型的Annotations只 ...

  2. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  3. SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能

    在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...

  4. Spring Boot学习笔记2——基本使用之最佳实践[z]

    前言 在上一篇文章Spring Boot 学习笔记1——初体验之3分钟启动你的Web应用已经对Spring Boot的基本体系与基本使用进行了学习,本文主要目的是更加进一步的来说明对于Spring B ...

  5. Spring框架学习笔记(5)——Spring Boot创建与使用

    Spring Boot可以更为方便地搭建一个Web系统,之后服务器上部署也较为方便 创建Spring boot项目 1. 使用IDEA创建项目 2. 修改groupid和artifact 3. 一路n ...

  6. Spring框架学习笔记(8)——spring boot+mybatis plus+mysql项目环境搭建

    之前写的那篇Spring框架学习笔记(5)--Spring Boot创建与使用,发现有多小细节没有提及,,正好现在又学习了mybatis plus这款框架,打算重新整理一遍,并将细节说清楚 1.通过I ...

  7. Spring Boot 学习笔记(六) 整合 RESTful 参数传递

    Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...

  8. Spring框架学习笔记(1)

    Spring 框架学习笔记(1) 一.简介 Rod Johnson(spring之父) Spring是分层的Java SE/EE应用 full-stack(服务端的全栈)轻量级(跟EJB比)开源框架, ...

  9. 转-Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable

    转-http://snowolf.iteye.com/blog/1628861/ Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariab ...

随机推荐

  1. NYOJ_268_荷兰国旗问题

    荷兰国旗问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描写叙述 荷兰国旗有三横条块构成,自上到下的三条块颜色依次为红.白.蓝.现有若干由红.白.蓝三种颜色的条块序列.要 ...

  2. 实战Java内存泄漏问题分析 -- hazelcast2.0.3使用时内存泄漏 -- 2

    hazelcast 提供了3中方法调用startCleanup: 第一种是在ConcuurentMapManager的构造函数中,通过调用node的executorManager中的Scheduled ...

  3. Value Stewardship Over Showmanship

     Value Stewardship Over Showmanship Barry Hawkins WHEn An ARCHiTECT EnTERS A pRojECT, there is an u ...

  4. luogu1313 计算系数

    题目大意:给定一个多项式(ax+by)^k,请求出多项式展开后x^n*y^m 项的系数. 将原式化为(ax+by)*(ax+by)*...①,然后将其拆解,拆解时x乘了多少次,a就乘了多少次,y,b同 ...

  5. 配置Windows群集

    故障转移群集 l  一个群集支持8个节点,(64位操作系统支持16个节点) l  可以使用故障转移群集的服务:SQL Server(数据库), Exchange(邮件),文件和打印服务,DHCP服务等 ...

  6. Promise解决回调地狱

    Promise是JavaScript异步操作解决方案.介绍Promise之前,先对异步操作做一个详细介绍. JavaScript的异步执行 概述 Javascript语言的执行环境是”单线程”(sin ...

  7. rsync文件备份同步

    1.rsync有两种认证协议: ssh认证协议 rsync server端不需要启动daemon进程,所以不用配置/etc/rsyncd.conf,只需要获取远程host的用户名密码 例: rsync ...

  8. BZOJ 3060 Kruskal

    思路: 把from&to都>k的直接加边 剩下的如果是一棵树就加. 否则ans++ (我的代码写的是反着的 不过意思都一样) //By SiriusRen #include <cs ...

  9. HBase编程 API入门系列之delete(管理端而言)(9)

    大家,若是看过我前期的这篇博客的话,则 HBase编程 API入门之delete(客户端而言) 就知道,在这篇博文里,我是在客户端里删除HBase表的. 这里,我带领大家,学习更高级的,因为,在开发中 ...

  10. APP开发中,如何从UI设计上提升APP用户体验

    设计中有很多细微的东西要注意,就如UI设计中,元素的统一性,图标风格.段落的排版等等,只有能注意这些细节,你的 APP UI 才算合格. 干货君总结了17个提升用户体验的 UI 设计小技巧,也是我们日 ...