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)相关推荐

  1. Spring Boot注解

    文章目录 简介 @SpringBootApplication @EnableAutoConfiguration 条件自动配置 @ConditionalOnClass 和 @ConditionalOnM ...

  2. 超级详细的Spring Boot 注解总结

    日常编程中我相信大家肯定都用过spring,也用过spring的注解,哪怕面试的时候也经常会被问到一些spring和spring boot注解的作用和含义等,那么这篇就带大家来看看超级详细的Sprin ...

  3. Spring Boot 注解原理

    Spring Boot 注解原理 首先,先看SpringBoot的主配置类: @SpringBootApplication public class StartEurekaApplication {p ...

  4. Spring Boot注解的运行原理

    Spring Boot 是一个基于 Spring Framework 的开源框架,通过简化配置和开发过程,使 Spring 应用程序的开发变得更加快速和便捷.在 Spring Boot 中,注解是非常 ...

  5. Spring Boot注解大全,一键收藏了!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:www.cnblogs.com/tanwei81/p/681 ...

  6. 一次性搞懂Spring Boot 注解原理与自动装配原理,图文并茂,万字长文!

    原文:cnblogs.com/jing99/p/11504113.html 首先,先看SpringBoot的主配置类: @SpringBootApplication public class Star ...

  7. 【建议收藏】Spring Boot注解全梳理!

    一.注解(annotations)列表 @SpringBootApplication:包含了**@ComponentScan**.「@Configuration」 和 「@EnableAutoConf ...

  8. Spring boot 注解 ConfigurationProperties 的使用

    原创自 第一勺金 00 最近在学习使用 spring boot.发现其中 @ConfigurationProperties这个注解使用的比较多.搜了比较多的文档都是英文,避免以后忘记,这里我也总结下它 ...

  9. Spring Boot 注解大全,一键收藏!回城路上复习!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | www.cnblogs.com/tanwei8 ...

  10. 10000 字讲清楚 Spring Boot 注解原理

    今日推荐 借助Redis锁,完美解决高并发秒杀问题还在直接用JWT做鉴权?JJWT真香Spring Boot 操作 Redis 的各种实现Fluent Mybatis 牛逼!Nginx 常用配置清单这 ...

最新文章

  1. 关于定于如何弄的漂亮点
  2. 端子排怎么生成_防雷接地图纸怎么看?
  3. pytorch 之 加载不同形式的预训练模型
  4. mysql5.5.30源码安装及主从搭建
  5. 微信模版消息 errmsg: 'invalid weapp pagepath hint: [OtU1OA0868a394]
  6. python文本菜单程序_从〇到一: Python GUI 程序:记事本
  7. 【SpringClould】Spring Cloud Eureka源码分析
  8. 类方法实现:用python实现一个简单的单词本,添加/查找/删除单词。
  9. How to build .apk file from command line
  10. java编写文本编辑器_基于java实现文本编辑器.doc
  11. 有一种毒药叫成功---成功学的泛滥与迷失
  12. Java并发编程面试题合集
  13. 开启CPU虚拟化功能
  14. 大学计算机实践教程课后答案,大学计算机基础实践教程习题答案.pdf
  15. Python计算等额本息贷款和等额本金贷款
  16. android 斜边_Android -- 一个滑动旋转的弧形菜单
  17. [Russell Han] 24 | 数据库基础 | 关系模型
  18. [墨者学院] 日志文件分析溯源(脱裤的IP地址)
  19. MySQL 1054错误 Unknown column .... in 'on clause'
  20. 博士申请 | 美国范德堡大学NDS实验室招收数据挖掘/机器学习全奖博士生

热门文章

  1. git 子模块_Git子模块的问题
  2. python怎么识别log函数_python中对数函数怎么表示
  3. 1_python基础—变量
  4. python元祖封包_[Day8]遷延蹉跎,來日無多-python終極指南:模組和封包,外掛般的超能力...
  5. java 线程安全性_Java线程安全性问题摘要_Power Node Java Academy的组织
  6. java notserializableexception,java.io.NotSerializableException
  7. Spring框架学习笔记07:基于XML配置方式使用Spring MVC
  8. Go的数组切片 Python的列表
  9. 【POJ1741】Tree,第一次的点分治
  10. 【BZOJ2190】【codevs2296】仪仗队,数论练习之φ的线性筛