springboot 自动配置,自定义start(包含controller)

自动配置的那些理论我就不说了,网上一大把,我们直接上代码

 首先创建父工程,创建一个空的maven项目

名字我们叫做spring-boot-learn-diary(springboot 学习日记)

然后我们在新建一个模块,也是空的maven,叫做demo-spring-boot-start

在pom文件导入依赖

前面两个是必要的,lombox看自己的代码习惯

导入依赖后,我们开始编码

先创建一个实体类,我写了一个User.java,并加上注解@ConfigurationProperties,这个时候注解会报错,这个时候可以暂时不用理会

 创建完User后,我们写一个UserService.java,代码如下

service 里面写上构造方法,然后写上两个方法

然后就是我们的自动配置类了

@EnableConfigurationProperties(User.class)加上这个注解后User的实体也不报错了
@Configuration 表示这是个配置类

ConditionalOnProperty 配置生效的条件 demo.user.enabled = true 生效,matchifmissing = true,如果配置文件没有值,默认true

最后我们需要写一个配置文件:META-INF/spring.factories

springboot启动的时候,会扫描这个配置文件

我们这指定自动配置的配置类 ,如果条件成立,会自动注册bean到spring容器中

我们测试一下,新建一个springboot的web项目,然后引入自己的start

 在yml里面写上配置文件

然后我们就可以直接使用这个bean啦

如果我们要引入start里面的controller,这个又要怎么配置

 首先我们在创建一个springboot的web项目

依赖如下 

创建一个controller

 然后在编写自动配置类

 老样子,我们编写配置文件

 然后我们引入jar包,编写配置文件,重新启动

 

 启动成功够,访问

好了,自己写的start就好了,代码我上传到码云了

https://gitee.com/panjandrum/spring-boot-learn-diary

Spring Boot 中,**自定义配置中心**通常指的是将应用的配置信息集中管理,并支持动态更新。Spring Boot 提供了多种方式来实现这一目标,包括: - 使用 `application.properties` / `application.yml` 文件进行本地配置。 - 使用 **Spring Cloud Config Server** 实现远程配置中心。 - 使用 **Nacos、Apollo、Consul、Zookeeper** 等第三方配置中心。 下面我们以 **Spring Cloud Config Server + Git 仓库** 的方式为例,详细说明如何搭建一个 Spring Boot 自定义配置中心,并让客户端应用从该配置中心获取配置。 --- ## ✅ 示例:使用 Spring Cloud Config 搭建配置中心 ### 第一步:创建 Config Server(配置中心服务端) #### 1. 创建 Spring Boot 项目添加依赖(Maven) ```xml <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> </dependencies> ``` #### 2. 启用 Config Server 并配置 Git 仓库 ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.config.server.EnableConfigServer; @SpringBootApplication @EnableConfigServer public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } } ``` #### 3. 配置 application.yml ```yaml server: port: 8888 spring: cloud: config: server: git: uri: https://github.com/yourname/config-repo.git # 替换为你自己的 Git 仓库地址 clone-on-start: true ``` 你的 Git 仓库中应该包含如下格式的配置文件: ``` config-repo/ ├── myapp-dev.yml ├── myapp-prod.yml ``` 例如 `myapp-dev.yml` 内容如下: ```yaml app: message: "Hello from Config Server (dev)" ``` --- ### 第二步:创建 Config Client(客户端应用) #### 1. 添加依赖(Maven) ```xml <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ``` #### 2. 创建 `bootstrap.yml`(注意是 bootstrap.yml 而不是 application.yml) ```yaml spring: application: name: myapp cloud: config: uri: http://localhost:8888 profile: dev label: main ``` #### 3. 创建测试 Controller 获取配置 ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class ConfigClientController { @Value("${app.message}") private String message; @GetMapping("/message") public String getMessage() { return message; } } ``` --- ## 🔍 解释说明 | 技术点 | 说明 | |--------|------| | `@EnableConfigServer` | 启用 Spring Cloud Config Server 功能 | | Git 仓库 | 存放所有环境的配置文件(如 dev、prod) | | `bootstrap.yml` | 客户端启动时优先加载配置中心地址 | | `/message` 接口 | 展示从配置中心读取的值 | --- ## 🧩 可扩展功能 - 支持配置热更新(需配合 Spring Cloud Bus + RabbitMQ / Kafka) - 支持安全认证(如 Basic Auth) - 支持加密配置(如使用 Jasypt) --- ##
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值