百度
360搜索
搜狗搜索

springboot注解详解,SpringBoot项目主启动类上常用的注解释意详细介绍

本文目录一览: Spring Boot 最核心的 25 个注解,都是干货!

Spring Boot 最核心的 25 个注解 1、@SpringBootApplication
这是 Spring Boot 最最最核心的注解,用在 Spring Boot 主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。
其实这个注解就是 @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan 这三个注解的组合,也可以用这三个注解来代替 @SpringBootApplication 注解。
2、@EnableAutoConfiguration
允许 Spring Boot 自动配置注解,开启这个注解之后,Spring Boot 就能根据当前类路径下的包或者类来配置 Spring Bean。
如:当前类路径下有 Mybatis 这个 JAR 包,MybatisAutoConfiguration 注解就能根据相关参数来配置 Mybatis 的各个 Spring Bean。
3、@Configuration
这是 Spring 3.0 添加的一个注解,用来代替 applicationContext.xml 配置文件,所有这个配置文件里面能做到的事情都可以通过这个注解所在类来进行注册。
4、@SpringBootConfiguration
这个注解就是 @Configuration 注解的变体,只是用来修饰是 Spring Boot 配置而已,或者可利于 Spring Boot 后续的扩展。
5、@ComponentScan
这是 Spring 3.1 添加的一个注解,用来代替配置文件中的 component-scan 配置,开启组件扫描,即自动扫描包路径下的 @Component 注解进行注册 bean 实例到 context 中。
前面 5 个注解可以在这篇文章《Spring Boot 最核心的 3 个注解详解》中了解更多细节的。
6、@Conditional
这是 Spring 4.0 添加的新注解,用来标识一个 Spring Bean 或者 Configuration 配置文件,当满足指定的条件才开启配置。
7、@ConditionalOnBean
组合 @Conditional 注解,当容器中有指定的 Bean 才开启配置。
8、@ConditionalOnMissingBean
组合 @Conditional 注解,和 @ConditionalOnBean 注解相反,当容器中没有指定的 Bean 才开启配置。
9、@ConditionalOnClass
组合 @Conditional 注解,当容器中有指定的 Class 才开启配置。
10、@ConditionalOnMissingClass
组合 @Conditional 注解,和 @ConditionalOnMissingClass 注解相反,当容器中没有指定的 Class 才开启配置。
11、@ConditionalOnWebApplication
组合 @Conditional 注解,当前项目类型是 WEB 项目才开启配置。
当前项目有以下 3 种类型。
enum Type {
}
12、@ConditionalOnNotWebApplication
组合 @Conditional 注解,和 @ConditionalOnWebApplication 注解相反,当前项目类型不是 WEB 项目才开启配置。
13、@ConditionalOnProperty
组合 @Conditional 注解,当指定的属性有指定的值时才开启配置。
14、@ConditionalOnExpression
组合 @Conditional 注解,当 SpEL 表达式为 true 时才开启配置。
15、@ConditionalOnJava
组合 @Conditional 注解,当运行的 Java JVM 在指定的版本范围时才开启配置。
16、@ConditionalOnResource
组合 @Conditional 注解,当类路径下有指定的资源才开启配置。
17、@ConditionalOnJndi
组合 @Conditional 注解,当指定的 JNDI 存在时才开启配置。
18、@ConditionalOnCloudPlatform
组合 @Conditional 注解,当指定的云平台激活时才开启配置。
19、@ConditionalOnSingleCandidate
组合 @Conditional 注解,当指定的 class 在容器中只有一个 Bean,或者同时有多个但为首选时才开启配置。
20、@ConfigurationProperties
用来加载额外的配置(如 .properties 文件),可用在 @Configuration 注解类,或者 @Bean 注解方法上面。
21、@EnableConfigurationProperties
一般要配合 @ConfigurationProperties 注解使用,用来开启对 @ConfigurationProperties 注解配置 Bean 的支持。
22、@AutoConfigureAfter
用在自动配置类上面,表示该自动配置类需要在另外指定的自动配置类配置完之后。
如 Mybatis 的自动配置类,需要在数据源自动配置类之后。
23、@AutoConfigureBefore
这个和 @AutoConfigureAfter 注解使用相反,表示该自动配置类需要在另外指定的自动配置类配置之前。
24、@Import
这是 Spring 3.0 添加的新注解,用来导入一个或者多个 @Configuration 注解修饰的类,这在 Spring Boot 里面应用很多。
25、@ImportResource
这是 Spring 3.0 添加的新注解,用来导入一个或者多个 Spring 配置文件,这对 Spring Boot 兼容老项目非常有用,因为有些配置无法通过 Java Config 的形式来配置就只能用这个注解来导入。
欢迎Java工程师朋友们加入Java高并发: 957734884 ,群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

Springboot(四):springboot的注解有哪些注解

springboot的优点就是简化配置,,没有了xml,基本都是一个配置(application.properties)+注解来实现springboot的构建
那么都有哪些注解咧?说一下我在工作中常用的注解
1:##@SpringBootApplication
标识该类为SpringBoot项目启动类。并且让SpringBoot自动给程序进行必要的配置,等同于@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan这三个注解.
(1):@SpringBootConfiguration表示的是该类会作为Springboot的一个配置类,
(2):@EnableAutoConfiguration表示开启自动配置功能,里面也实现了自动配置原理
@Configuration会把组件会装配到实体类上封装为一个bean,AutoConfigurationImportSelector的selectImports()这个方法,找到所有JavaConfig自动配置类的全限定名对应的class,然后将所有自动配置类加载到Spring容器中。bean有了,配置有了,相当于对象也有了,这就是自动配置.
(3):@ComponentScan用来将包加入SpringIOC的包扫描,
2: @RestController 和@Controller

@RestController相当于@Controller+@ResponseBody,

@RestController加在类上面的注解,使得类里面的每个方法都将json/xml返回数据加返回到前台页面中。

比如return "abc" 前端会展示abc三个字母

@Controller加在类上面的注解,使得类里面的每个方法都返回一个视图页面。

比如return "abc" 前端会展示静态资源中的的abc.html里面的内容

阅读更多 >>>  fast boot什么意思电脑

3: @component和@configuration

虽然Component注解也会当做配置类,但是并不会为其生成CGLIB代理Class,所以在生成Driver对象时和生成Car对象时调用car()方法执行了两次new操作,所以是不同的对象。当时Configuration注解时,生成当前对象的子类Class,并对方法拦截,第二次调用car()方法时直接从BeanFactory之中获取对象,所以得到的是同一个对象。

4: @Autowired 与@Resource

@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。

@Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。如果我们想使用按照名称(byName)来装配,可以结合@Qualifier注解一起使用

@Resource默认按照ByName自动注入,由J2EE提供,需要导入包javax.annotation.Resource。

SpringBoot项目主启动类上常用的注解释意

一、SpringCloud相关注解 1、@SpringBootApplication:标记该项目为SpringBoot项目 2、@EnableCircuitBreaker:启动断路器,业务类启用@HystrixCommand和@HystrixProperty用于降级处理 3、@EnableEurekaClient:启动客户端服务注册功能 4、@EnableEurekaServer:启动服务注册中心功能 5、@EnableFeignClients:开启feignClient服务之间调用和Ribbon负载均衡功能 6、@MapperScan:扫描 mapper 接口类,例:@MapperScan(value = {"com.hkl.modules. .mapper","com.hkl.modules. .dao"}) 7、@ComponentScan:扫描组件类,例:@ComponentScan(value = {"com.diboot.core. ","com.hkl. "})
二、SpringCloud Alibaba相关注解 1、@SpringBootApplication:标记该项目为SpringBoot项目 2、@EnableDiscoveryClient:启动Nacos服务发现,在主启动类上使用此注解或类似的注解,代表不使用springboot的自动配置配能,通过独立的注解导入相应的配置类单独配置

springboot三大核心注解是什么?

springboot三大核心注解是@Configuration,@EnableAutoConfiguration和@ComponentScan。提到@Configuration就要提到他的搭档@Bean,使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件。
springboot三大核心注解的特点
这个注解类标识这个类可以使用SpringIoC容器作为bean定义的来源,@Bean注解告诉Spring,一个带有@Bean的注解方法将返回一个对象,该对象应该被注册为在Spring应用程序上下文中的bean。
能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置,会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository和@Controller。

2) SpringBootApplication注解详解

@SpringbootConfiguration注解等同于以下下三个注解:
可以看到SpringBootConfiguration 等同于使用了@Configuration
@EnableAutoConfiguration会根据classpath以及定义的Bean来帮你加载你想要的bean。 可以通过spring.autoconfigure.exclude来排除掉不想自动加载的bean。 且Auto-configuration发生在自定义的bean都被注册好了之后。 另外最好将带有@EnableAutoConfiguration的类放在root package,这样就能扫描所有子包下面的类。 auto-configuration的bean大多数都是带有@ConditionalOnClass and @ConditionalOnMissingBean 注解的bean。
这个类实现了DeferredImportSelector被import进来,内部会调用getCandidateConfigurations()来加载所有的auto-configuration beans
从下面图中能看到SpringFactoriesLoader从spring.factory里找到207个auto-configuration的beans。
AutoConfigurationImportSelector核心功能就是获取spring.factories中EnableAutoConfiguration所对应的Configuration类列表,由@EnableAutoConfiguration注解中的exclude/excludeName参数筛选一遍,再由AutoConfigurationImportFilter类所有实例筛选一遍,得到最终的用于Import的configuration和exclusion。 该函数是被谁调用的呢?在org.springframework.context.annotation.ConfigurationClassParser类中被processImports()调用,而processImports()函数被doProcessConfigurationClass()调用。 关于ConfigurationClassParser 请参考 Spring Annotation IOC
指定扫描basePackages的路径,具体可以查看@Configuration的javadoc文档。

springboot核心注解是什么?

1、##@SpringBootConfiguration:读取配置文件,配置文件的路径是当前根目录(src/main/resources/application.yml等)。
2、##EnableAutoConfiguration:开启自动配置,扫描当前的所有依赖的jar包,发现新的依赖出现将会将会根据依赖完各种自动配置。
扩展资料
SpringBoot基于所添加的依赖,去“猜测”你想要如何配置Spring。比如引入了spring-boot-starter-web,而这个启动器中添加了tomcat、SpringMVC的依赖。
此时自动配置就知道是要开发一个web应用,所以就帮完成了web及SpringMVC的默认配置了!我们使用SpringBoot构建一个项目。

SpringBoot篇 - Controller中常用的注解简介

SpringBoot的Controller中经常会用到注解@Controller、@RestController、@RequestMapping、@RequestParam、@PathVariable、@RequestBody等,以下针对这些注解简单使用。

@Controller 定义了一个控制器类,它需要配合使用@RequestMapping 注解的方法才是真正处理请求的处理器。
使用此注解返回的不是Json数据,而是页面类数据。
例如:
先在pom.xml中添加依赖

然后在resources目录下新建templates目录,并且在templates目录下创建hello.html文件。
最后创建HelloController

启动服务,访问localhost:8080/test/hello,页面跳转到hello.html页面。

使用@RestController注解的方法表示一个控制器,返回json。原来返回一个json需要@Controller和@RequestBody配合使用。
例如:

启动服务,访问 http://localhost:8080/jdbc/select?memberNo=20211123146 ,返回:

@RequestMapping可以使用在类上,也可以使用在方法上。
而@GetMapping/@PostMapping 其实就是@RequestMapping和Get/Post的集合
  @GetMapping(value = “hello”) 等价于@RequestMapping(value = “hello”, method = RequestMethod.GET)
@PostMapping(value = “hello”) 等价于@RequestMapping(value = “hello”, method = RequestMethod.POST )

@RequestParam用于获取查询参数。格式为:url?name=AAA
例如:

启动服务,访问 http://localhost:8080/jdbc/select?memberNo=20211123146 即可。

通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。即获取路径参数。格式为:url/{id}
例如:

启动服务,访问 http://localhost:8080/jdbc/select/20211123146 即可。

@RequestBody传递的需要是对象
示例1:

启动服务,使用postman访问 http://localhost:8080/jdbc/memberPost1 即可。查看控制台输出:
Member(memberId=5, shopId=9730231, memberNo=20211123146, mobile=13800, openId=#zssyd4U4J3p+czzXkwg+ZQ==)

示例2:

启动服务,使用postman访问 http://localhost:8080/jdbc/memberPost2 即可

示例3:不使用注解

启动服务,使用postman访问 http://localhost:8080/jdbc/memberPost3 ,并在postman的form-data中分别传入key-value

总结:
如果要在Controller层返回一个页面,用注解@Controller;如果让其作为一个接口,用@RestController
在GET请求中(@GetMapping),不能使用@RequestBody。
在POST请求(@PostMapping),可以使用@RequestBody和@RequestParam
@RequestParam注解接受的参数来源于url中,格式为xxx?username=aa&password=456,而@RequestBody注解接收的参数则是来自于requestBody中,即请求体中。

@SpringBootApplication包含的三个注解及其含义

@SpringBootApplication包含的三个注解及其含义

第一个:@SpringBootConfiguration(在这个类的源码中又有一个Configuration的注解)

@Configuration这个注解的作用就是声明当前类是一个配置类,然后Spring会自动扫描到添加了@Configuration的类,读取其中的配置信息,而@SpringBootConfiguration是来声明当前类是SpringBoot应用的配置类,项目中只能有一个。所以一般我们无需自己添加。

第二个:@EnableAutoConfiguration

开启自动配置,告诉SpringBoot基于所添加的依赖,去“猜测”你想要如何配置Spring。比如我们引入了spring-boot-starter-web,而这个启动器中帮我们添加了tomcat、SpringMVC的依赖,此时自动配置就知道你是要开发一个web应用,所以就帮你完成了web及SpringMVC的默认配置了!我们使用SpringBoot构建一个项目,只需要引入所需框架的依赖,配置就可以交给SpringBoot处理了。

第三个:@ComponentScan

配置组件扫描的指令

提供了类似与

标签的作用

通过basePackageClasses或者basePackages属性来指定要扫描的包。

如果没有指定这些属性,那么将从声明这个注解的类所在的包开始,扫描包及子包

而我们的@SpringBootApplication注解声明的类就是main函数所在的启动类,

因此扫描的包是该类所在包及其子包。因此,一般启动类会放在一个比较前的包目录中。

SpringBoot的核心注解都有哪些?

@SpringBootApplication注解是SpringBoot的灵魂注解
这个注解整合了3个注解的特性:分别是@Configuration注解、@Component注解、@EnableAutoConfiguration注解。这个三个注解的作用分别是:
- @Configuration注解:声明当前类为配置类
- @ComponentScan注解:指定扫描包路径,默认不填扫描当前包及其子包
- @EnableAutoConfiguration注解:最重要注解没有之一,打开SpringBoot的自

SpringBoot的启动过程及部分注解

相比于以前繁琐的基于 Spring 的 Web 应用,SpringBoot 通过默认配置很多框架的方式,极大的简化了项目的搭建以及开发流程。 一个简单的 SpringBoot 应用只需要三步: 1.在 pom.xml 中引入所需要的依赖 2.在 application.yml 配置所需的数据源 3.在启动类中加入 @SpringBootApplication 注解 以及 run 方法
启动流程

1.SpringApplication.run()启动 2.新建 SpringApplication 实例,主要是初始化一些成员变量,参数列表等

prepareContext():
refreshContext() 中 refresh():
核心注解(部分) @SpringBootAppliction 启动类 @Configuration + @EnableAutoConfiguration + @ComponentScan
@Configuration 允许在应用上下文中注册其它的 bean,可用 @Component代替 @Configuration 会为 bean 创建一个代理类,这个类会拦截所有被 @Bean 修饰的方法,从容器中返回所需要的单例对象;@Component 不会创建代理类,会直接执行方法,每次返回一个新的对象
@EnableAutoConfiguration 启用 springboot 自动装配,该参数位于 spring.factories 中 org.springframework.boot.autoconfigure.EnableAutoConfiguration
@ComponentScan 扫描被@Component (@Service,@Controller)注解的 bean,注解默认会扫描该类所在的包下所有的类
@Autowired 自动导入对象到类中,被注入进的类被 Spring 容器管理 Service->Controller
@Component 通用的注解,可标注任意类为 Spring 组件 @Repository 持久层 @Service 服务层 @Controller 控制层
@Bean 用于告诉方法产生一个 Bean 对象,然后这个对象交给 IOC 容器管理。产生这个Bean对象的方法Spring只会调用一次,然后将这个Bean对象放在 IOC 容器中

网站数据信息

"springboot注解详解,SpringBoot项目主启动类上常用的注解释意"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:springboot注解详解,SpringBoot项目主启动类上常用的注解释意的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!