springboot,vue,springcloudalibaba课程视频,有需要可以看看
<!-- springboot,springboot整合redis,整合rocketmq视频: -->
https://www.bilibili.com/video/BV1nkmRYSErk/?vd_source=14d27ec13a4737c281b7c79463687112
<!-- springcloudalibaba,openfeign,nacos,gateway,sso视频:-->
https://www.bilibili.com/video/BV1cFDEYWEkY/?vd_source=14d27ec13a4737c281b7c79463687112
<!-- vue+springboot前后端分离视频:-->
https://www.bilibili.com/video/BV1JLSEYJETc/?vd_source=14d27ec13a4737c281b7c79463687112
<!-- shiro视频:-->
https://www.bilibili.com/video/BV1YVUmYJEPi/?vd_source=14d27ec13a4737c281b7c79463687112
自定义 Spring Boot Starter 流程
创建一个自定义的 Spring Boot Starter 通常包括以下步骤:
- 创建 Maven 项目:为 Starter 创建一个新的 Maven 模块。
-
定义依赖:在
pom.xml
中定义 Starter 需要的依赖。 -
创建配置属性类:定义一个配置属性类,使用
@ConfigurationProperties
注解来绑定配置文件中的属性。 -
创建自动配置类:创建一个配置类,使用
@Configuration
注解,并使用@EnableConfigurationProperties
来启用配置属性类。 -
定义 Bean:在自动配置类中定义所需的 Bean,并使用条件注解(如
@ConditionalOnMissingBean
)来控制 Bean 的创建。 -
创建
spring.factories
文件:在META-INF
目录下创建spring.factories
文件,声明自动配置类。 - 打包和安装:将 Starter 打包并安装到本地 Maven 仓库或发布到远程仓库。
-
在主项目中使用:在主项目的
pom.xml
或build.gradle
中添加自定义 Starter 的依赖。 - 配置属性:在主项目的配置文件中设置 Starter 所需的属性。
自定义 Spring Boot Starter 案例
假设我们要创建一个名为 my-spring-boot-starter-greeter
的 Starter,用于添加一个简单的问候功能。
- 创建 Maven 项目:
首先,创建一个新的 Maven 模块,比如叫 greeter-spring-boot-starter
。
- 定义依赖:
在 greeter-spring-boot-starter
的 pom.xml
文件中添加以下内容:
<groupId>com.example</groupId>
<artifactId>greeter-spring-boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- Spring Boot Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
- 创建配置属性类:
创建一个名为 GreeterProperties
的类,用于绑定配置文件中的属性:
package com.example.greeter.properties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "greeter")
public class GreeterProperties {
private String message = "Hello";
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
- 创建自动配置类:
创建一个自动配置类 GreeterAutoConfiguration
:
package com.example.greeter.autoconfigure;
import com.example.greeter.properties.GreeterProperties;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConditionalOnProperty(name = "greeter.enabled", havingValue = "true")
public class GreeterAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public Greeter greeter(GreeterProperties properties) {
return new Greeter(properties.getMessage());
}
}
- 定义 Greeter Bean:
创建 Greeter
类,它将使用配置的问候语:
package com.example.greeter;
public class Greeter {
private String message;
public Greeter(String message) {
this.message = message;
}
public void greet() {
System.out.println(message + ", World!");
}
}
-
创建
META-INF/spring.factories
文件:
在 src/main/resources/META-INF
目录下创建 spring.factories
文件,并添加自动配置类的全限定名:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.greeter.autoconfigure.GreeterAutoConfiguration
- 打包和安装:
使用 Maven 命令 mvn install
将 Starter 安装到本地仓库。
- 在主项目中使用:
在主项目的 pom.xml
中添加 Starter 的依赖:
<dependency>
<groupId>com.example</groupId>
<artifactId>greeter-spring-boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
- 配置属性:
在主项目的 application.properties
或 application.yml
文件中设置问候语:
greeter.message=Good Morning
greeter.enabled=true
现在,当你的主项目启动时,如果 greeter.enabled
设置为 true
,Greeter
Bean 将被创建,并使用配置的问候语。你可以通过注入 Greeter
并调用 greet()
方法来使用这个功能。