我求你会自定义 SpringBoot Starter

跟着学习文档,折腾了半天,没想到最后是springboot版本问题,记录下来

🙌跟着我一起开始学习!!!!!!!!!!!

创建项目

Starter 也是基于 SpringBoot 项目创建的,所以第一步应该先创建 SpringBoot 项目。

pom.xml 只需引用 spring-boot-starter 即可

创建工程完成后,删除不必要文件,目录如下:

css 复制代码
 ├── pom.xml
 └── src
     ├── main
     │   ├── java
     │   │   └── cn
     │   │       └── machen
     │   │           └── starter
     │   │               └── demospringbootstarter
     │   └── resources

注意奥!!! demospringbootstarter是包目录

然后这个项目的maven的三坐标就是以后别的项目可以引入的依赖

写自动配置类

然后在这个包下写自动配置类,为了让Springboot自动装载的,我们写一个AutoConfigurationTest

等一下!! 自动装载什么呢?比如我想在让其自动加载ServiceBean,我得先提供吧

来咯🐕

typescript 复制代码
 public class ServiceBean {
     public String sayHello(String name) {
         return String.format("Hello World, %s", name);
     }
 }
 ​

然后再写一个自动配置类,来将 ServiceBean 进行声明 Bean,等待扫描后交付给 Spring Ioc 容器

typescript 复制代码
 @Configuration
 public class AutoConfigurationTest {
 ​
     @Bean
     public ServiceBean getServiceBean() {
         return new ServiceBean();
     }
 }

稍等!!!!

为什么加入了@Bean之后就可以被自动扫描了?

看一下@Bean的定义:在Spring中,@Bean注解用于定义一个Bean,并告诉Spring容器如何创建这个Bean。当Spring容器扫描到带有@Configuration注解的类时,它会检查类中的@Bean注解,将@Bean注解的方法返回的对象注册为Spring Bean

添加自动配置的路径

目 Resources 目录下新建 META-INF 文件夹,然后创建 spring.factories 文件

里面写:

ini 复制代码
 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
   cn.machen.starter.demospringbootstarter.AutoConfigurationTest

打包

直接mvn clean install,将其打入maven本地仓库

项目使用

另起一个项目,里面引入依赖,我不贴我的了,你直接复制你的自定义的项目中的maven三坐标作为依赖

然后测试类里面注入后直接用

typescript 复制代码
 @SpringBootTest
 class Demo1ApplicationTests {
 ​
 ​
     @Autowired
     private ServiceBean serviceBean;
 ​
     @Test
     void contextLoads() {
         System.out.println(serviceBean.sayHello("libai"));
     }
 ​
 }

舒服了💕

相关推荐
小码哥_常8 小时前
Spring Boot:别再重复造轮子,这些内置功能香麻了
后端
皮皮林5519 小时前
OpenFeign 首次调用卡 3 秒?八年老开发扒透 5 个坑,实战优化到 100ms!
后端
千寻girling10 小时前
《 Git 详细教程 》
前端·后端·面试
0xDevNull11 小时前
Linux 中 Nginx 代理 Redis 的详细教程
redis·后端
GetcharZp11 小时前
告别 Nginx 手动配置!这款 Go 语言开发的云原生网关,才是容器化时代的真香神器!
后端
RuoyiOffice12 小时前
SpringBoot+Vue3 企业考勤如何处理法定假期?节假日方案、调休补班与工作日判断链路拆解
spring boot·后端·vue·anti-design-vue·ruoyioffice·假期·人力
Vane112 小时前
从零开发一个AI插件,经历了什么?
人工智能·后端
9523612 小时前
SpringBoot统一功能处理
java·spring boot·后端
rleS IONS13 小时前
SpringBoot中自定义Starter
java·spring boot·后端
DevilSeagull13 小时前
MySQL(2) 客户端工具和建库
开发语言·数据库·后端·mysql·服务