Spring Boot 注解(1)
2019独角兽企业重金招聘Python工程师标准>>>
启动类注解 @SpringBootApplication
使用@SpringbootApplication注解 可以解决根类或者配置类(我自己的说法,就是main所在类)头上注解过多的问题,一个@SpringbootApplication相当于@Configuration,@EnableAutoConfiguration和 @ComponentScan 并具有他们的默认属性值。
package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application { public static void main(String[] args) {SpringApplication.run(Application.class, args);}}
@Configuration 和 @Bean
@Configuration可理解为用spring的时候xml里面的<beans>标签
@Bean可理解为用spring的时候xml里面的<bean>标签
Spring Boot不是spring的加强版,所以@Configuration和@Bean同样可以用在普通的spring项目中,而不是Spring Boot特有的,只是在spring用的时候,注意加上扫包配置
<context:component-scan base-package="com.xxx.xxx" />,普通的spring项目好多注解都需要扫包,才有用,有时候自己注解用的挺6,但不起效果,就要注意这点。
Spring Boot则不需要,主要你保证你的启动Spring Boot main入口,在这些类的上层包就行。
@ComponentScan 和 @Configuration
@ComponentScan 如果不设置basePackage的话 默认会扫描包的所有类,所以最好还是写上basePackage ,减少加载时间。默认扫描**/*.class路径 比如这个注解在com.wuhulala 下面 ,那么会扫描这个包下的所有类还有子包的所有类,比如com.wuhulala.service包的应用
@Configuration 表示这个类是一个spring 配置类,一般这里面会定义Bean,会把这个类中bean加载到spring容器中
@EnableAutoConfiguration
这个注释告诉SpringBoot“猜”你将如何想配置Spring,基于你已经添加jar依赖项。如果spring-boot-starter-web已经添加Tomcat和Spring MVC,这个注释自动将假设您正在开发一个web应用程序并添加相应的spring设置。
自动配置被设计用来和“Starters”一起更好的工作,但这两个概念并不直接相关。您可以自由挑选starter依赖项以外的jar包,springboot仍将尽力自动配置您的应用程序。
@Controller、@Service 、@Repository 和 @Component
- @Service:用于标注业务层组件。
- @Controller:用于标注控制层组件(如struts中的action)。
- @Repository:用于标注数据访问组件,即DAO组件。
- @Component:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Autowired和@Qualifier
通过上面的配置,Spring已经可以找到对应的Bean,接下来,就是将Bean注入到类中使用,减少get和set方法。减少new。
@Autowired:对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 @Qualifier:指定注入Bean的名称。 @Autowired默认按类型装配(spring),默认情况下要求依赖对象必须存在。如果要允许null值,可以设置它的required属性为false。如果我们想使用名称装配可以结合@Qualifier注解进行使用。
@Resource J2EE的注解
@Resource:作用等同于@Autowired。 @Resource(J2EE),默认安装名称进行装配,名称默认为属性名。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。 推荐使用:@Resource注解在字段上,这样就不用写setter方法了,并且这个注解是属于J2EE的,减少了与spring的耦合。这样代码看起就比较优雅。
单元测试
进行单元测试的时候需要额外使用以下注解:
- @RunWith(SpringJUnit4ClassRunner.class):让测试运行于Spring测试环境;
- @ContextConfiguration(locations={“classpath:…”}):加载对应的配置文件,测试的时候需要自己手动加载配置文件
- @Transactional:使用事务方式;
- @TransactionConfiguration(transactionManager = “transactionManager”, defaultRollback = true):事务的配置,事务的名称、是否开启事务回滚。开启回滚后测试数据就不会污染数据库。
转载于:https://my.oschina.net/u/3421984/blog/1833282
Spring Boot 注解(1)相关推荐
- Spring Boot注解
文章目录 简介 @SpringBootApplication @EnableAutoConfiguration 条件自动配置 @ConditionalOnClass 和 @ConditionalOnM ...
- 超级详细的Spring Boot 注解总结
日常编程中我相信大家肯定都用过spring,也用过spring的注解,哪怕面试的时候也经常会被问到一些spring和spring boot注解的作用和含义等,那么这篇就带大家来看看超级详细的Sprin ...
- Spring Boot 注解原理
Spring Boot 注解原理 首先,先看SpringBoot的主配置类: @SpringBootApplication public class StartEurekaApplication {p ...
- Spring Boot注解的运行原理
Spring Boot 是一个基于 Spring Framework 的开源框架,通过简化配置和开发过程,使 Spring 应用程序的开发变得更加快速和便捷.在 Spring Boot 中,注解是非常 ...
- Spring Boot注解大全,一键收藏了!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:www.cnblogs.com/tanwei81/p/681 ...
- 一次性搞懂Spring Boot 注解原理与自动装配原理,图文并茂,万字长文!
原文:cnblogs.com/jing99/p/11504113.html 首先,先看SpringBoot的主配置类: @SpringBootApplication public class Star ...
- 【建议收藏】Spring Boot注解全梳理!
一.注解(annotations)列表 @SpringBootApplication:包含了**@ComponentScan**.「@Configuration」 和 「@EnableAutoConf ...
- Spring boot 注解 ConfigurationProperties 的使用
原创自 第一勺金 00 最近在学习使用 spring boot.发现其中 @ConfigurationProperties这个注解使用的比较多.搜了比较多的文档都是英文,避免以后忘记,这里我也总结下它 ...
- Spring Boot 注解大全,一键收藏!回城路上复习!
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | www.cnblogs.com/tanwei8 ...
- 10000 字讲清楚 Spring Boot 注解原理
今日推荐 借助Redis锁,完美解决高并发秒杀问题还在直接用JWT做鉴权?JJWT真香Spring Boot 操作 Redis 的各种实现Fluent Mybatis 牛逼!Nginx 常用配置清单这 ...
最新文章
- 关于定于如何弄的漂亮点
- 端子排怎么生成_防雷接地图纸怎么看?
- pytorch 之 加载不同形式的预训练模型
- mysql5.5.30源码安装及主从搭建
- 微信模版消息 errmsg: 'invalid weapp pagepath hint: [OtU1OA0868a394]
- python文本菜单程序_从〇到一: Python GUI 程序:记事本
- 【SpringClould】Spring Cloud Eureka源码分析
- 类方法实现:用python实现一个简单的单词本,添加/查找/删除单词。
- How to build .apk file from command line
- java编写文本编辑器_基于java实现文本编辑器.doc
- 有一种毒药叫成功---成功学的泛滥与迷失
- Java并发编程面试题合集
- 开启CPU虚拟化功能
- 大学计算机实践教程课后答案,大学计算机基础实践教程习题答案.pdf
- Python计算等额本息贷款和等额本金贷款
- android 斜边_Android -- 一个滑动旋转的弧形菜单
- [Russell Han] 24 | 数据库基础 | 关系模型
- [墨者学院] 日志文件分析溯源(脱裤的IP地址)
- MySQL 1054错误 Unknown column .... in 'on clause'
- 博士申请 | 美国范德堡大学NDS实验室招收数据挖掘/机器学习全奖博士生
热门文章
- git 子模块_Git子模块的问题
- python怎么识别log函数_python中对数函数怎么表示
- 1_python基础—变量
- python元祖封包_[Day8]遷延蹉跎,來日無多-python終極指南:模組和封包,外掛般的超能力...
- java 线程安全性_Java线程安全性问题摘要_Power Node Java Academy的组织
- java notserializableexception,java.io.NotSerializableException
- Spring框架学习笔记07:基于XML配置方式使用Spring MVC
- Go的数组切片 Python的列表
- 【POJ1741】Tree,第一次的点分治
- 【BZOJ2190】【codevs2296】仪仗队,数论练习之φ的线性筛