Java教程

SpringBoot中相关注解说明、配置文件拆分、加载外部配置、项目创建方式以及SpringBoot中对象的创建方式

本文主要是介绍SpringBoot中相关注解说明、配置文件拆分、加载外部配置、项目创建方式以及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中对象的创建

在这里插入图片描述

在这里插入图片描述

  1. 创建单个对象

​ 在springboot中可以管理单个对象可以直接使用spring框架中注解形式创建。

  • @Component 通用的对象创建注解
    • @Controller 用来创建控制器对象
    • @Service 用来创建业务层对象
    • @Repository 用来创建DAO层对象
      • 以上注解都有value属性,value属性用来指定工厂中对象名称

DemoServiceImpl

在这里插入图片描述

DemoController

在这里插入图片描述

  1. 创建多个对象

​ 如何在springboot中像spring框架一样通过xml创建多个对象,在SpringBoot中也提供了相同注解如**@Configuration + @Bean**注解进行创建

  • @Configuration 代表这是一个spring的配置类相当于Spring.xml配置文件
  • @Bean 用来在工厂中创建这个@Bean注解标识的对象
    • 默认使用@Bean创建对象在工厂中唯一标识为方法名称
    • 修改在工厂中对象标识可以在使用**@Bean(“工厂中名字”)指定一个名字**

在这里插入图片描述

在这里插入图片描述

这篇关于SpringBoot中相关注解说明、配置文件拆分、加载外部配置、项目创建方式以及SpringBoot中对象的创建方式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!