标签:springboot 配置文件 创建 配置 application 注解 yml SpringBoot
7. SpringBoot中相关注解说明
我们先来看一下入口类上的**@SpringBootApplication**注解
@SpringBootApplication 是一个组和注解(多个注解组合而成的一个注解),其实本身@SpringBootApplication注解没有什么太大的功能,但是取决于它身上组合而来的注解,其实@SpringBootApplication注解单纯在springboot中就是一个标志,但是它的底层是由多个注解组合而来的,组合之后**@SpringBootApplication**就显得非常重要了,我们看一下@SpringBootApplication注解的源码:
其中,@Target、@Retention是元注解(用来修饰注解的注解),@Target是用来指定注解的生效范围,@Retention用来指定注解什么时候有效。@SpringBootApplication注解等价于@SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan注解。
@SpringBootApplication注解本身没有太大用,但是由于它继承了这三个注解,由这三个注解组合而来,所以它的作用就非常大了。
@SpringBootConfiguration: 用来自动配置spring + springmvc(初始化servlet …)相关环境;
@EnableAutoConfiguration:开启自动注解(使spring相关环境配置生效),这个才是自动配置最核心的注解,同时它还能与项目中引入的第三方技术自动配置其环境,也就是说,只需要引入mybatis-springboot整合的依赖,就能帮你自动配置mybatis的环境;如果引入redis-springboot的依赖,我就能帮你自动配置redis环境
@ComponentScan:组件扫描(扫描到注解使注解生效),这也就是为什么建议入口类在所有子包之上了,当然入口类也可以不在所有子包之上了,但需要加上@ComponentScan(com.baizhi),扫描整个包使注解生效。
接下来我们来看看入口类中的静态方法run方法:
SpringApplication.run(SpringBootDay1Application.class, args);
这个静态方法可以帮我们去运行内嵌的tomcat,并把服务启动起来。另外,参数2是启动springboot应用时候需要传递main函数参数args作为启动的第2个参数,main函数的参数args是用来在启动的时候去向程序传一堆JVM参数,通过这些参数就可以动态的覆盖某些配置。好处就是在启动的时候动态的向程序传一些参数,这些参数是动态的,日后在测试的时候就比较便与测试
-Dserver.port=8083
总结
8. SpringBoot中配置文件拆分以及加载外部配置
配置文件拆分
在项目开发时一定含两个环境,一个是测试环境,一个是生产环境,无论是测试环境还是生产环境也好,可能仅仅只是有一些配置是不同的,但是有一些配置一定是相同的,一定会有一些公共的配置。日后可以基于环境单独的抽取两个配置文件,抽取的配置文件命名为application-xxx.yml,测试环境application-dev.yml、生产环境application-prod.yml,公共的配置还写在application.yml中,但是项目启动的时候只会读application.yml呀,所以需要在公共的application.yml告诉这次想要让哪个环境生效,配置哪个环境生效,如果配置了dev,那本次就是公共+dev,如果配置了prod,那本次就是公共+prod,如果什么都没配置,那就只有公共。
现在我们应用一下,我们让端口号为8081是公共的,但是项目名不一样,测试时是 server.servlet.context-path: /springboot_day1,但生产的时候是server.servlet.context-path: /springboot。所以公共application.yml中需要配置端口号、配置哪个环境生效比如测试环境(spring.profiles.active:dev)。接下来我们来演示一下:
application.yml配置文件中的内容:
# 公共配置
server:
port: 8081 # 修改内嵌服务器的端口号
# 激活哪个环境配置
spring:
profiles:
active: prod # 写简名,简名就是yml配置文件名字中'-'后面的名字 让prod环境生效
application-dev.yml配置文件中的内容:
server:
servlet:
context-path: /springboot_day1 # 测试项目名
application-prod.yml配置文件中的内容:
server:
servlet:
context-path: /springboot # 生产项目名
加载外部配置
如果想要在启动springboot应用的时候,不想让它去读取resources下的任何一个配置,想让它以外部的完整配置为主,springboot也是支持的。那它是怎么支持的呢,它可以在启动springboot应用的时候去指定外部配置文件的位置。
创建一个完整的配置文件
指定外部配置文件的位置
--spring.config.location=D:/springbootcodes/application-local-prod.yml
9. 项目两种创建方式
第一种就是之前的环境搭建通过手工的方式构建SpringBoot应用。
另一种就是快速初始化,推荐使用这种方式,下面我们来看一下快速初始化的使用步骤:
10. SpringBoot中对象的创建
- 创建单个对象
在springboot中可以管理单个对象可以直接使用spring框架中注解形式创建。
@Component
通用的对象创建注解@Controller
用来创建控制器对象@Service
用来创建业务层对象@Repository
用来创建DAO层对象- 以上注解都有value属性,value属性用来指定工厂中对象名称
DemoServiceImpl
DemoController
- 创建多个对象
如何在springboot中像spring框架一样通过xml创建多个对象,在SpringBoot中也提供了相同注解如**@Configuration + @Bean
**注解进行创建
@Configuration
代表这是一个spring的配置类相当于Spring.xml配置文件@Bean
用来在工厂中创建这个@Bean注解标识的对象- 默认使用@Bean创建对象在工厂中唯一标识为方法名称
- 修改在工厂中对象标识可以在使用**@Bean(“工厂中名字”)指定一个名字**
标签:springboot,配置文件,创建,配置,application,注解,yml,SpringBoot 来源: https://blog.csdn.net/qq_50313418/article/details/123586008
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。