当前位置: 首页 > news >正文

自定义starter

依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.8</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.yiyi</groupId><artifactId>register-spring-boot-starter</artifactId><version>0.0.1-SNAPSHOT</version><name>register-spring-boot-starter</name><description>Demo project for Spring Boot</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><optional>true</optional><!--表示依赖不可传递--></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins>
<!--            <plugin>-->
<!--                <groupId>org.springframework.boot</groupId>-->
<!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
<!--                <configuration>-->
<!--                    <excludes>-->
<!--                        <exclude>-->
<!--                            <groupId>org.projectlombok</groupId>-->
<!--                            <artifactId>lombok</artifactId>-->
<!--                        </exclude>-->
<!--                    </excludes>-->
<!--                </configuration>-->
<!--            </plugin>--></plugins></build></project>

大致结构

org.springframework.boot.autoconfigure.AutoConfiguration.imports

如果是SpringBoot2.7之前

在META-INF下新建spring.factories

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.yiyi.registerspringbootstarter.config.RegisterAutoConfiguration

package com.yiyi.registerspringbootstarter.config;import com.yiyi.registerspringbootstarter.service.RegisterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
@EnableConfigurationProperties(RegisterProperties.class)
public class RegisterAutoConfiguration {@Autowiredprivate  RegisterProperties registerProperties;@Bean@ConditionalOnMissingBean(RegisterService.class)public RegisterService createRegisterConfiguration(){return  new RegisterService(registerProperties.getUsername(),registerProperties.getPassword(),registerProperties.getTelephone());}}
package com.yiyi.registerspringbootstarter.config;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;@ConfigurationProperties(prefix = "register.user")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RegisterProperties {private String username="admin";private String password="123456";private String telephone;}
package com.yiyi.registerspringbootstarter.service;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class RegisterService {private String username;private String password;private String telephone;public void register(){System.out.println("注册成功!你的注册信息如下:");System.out.println("用户名:"+username);System.out.println("密码:"+password);System.out.println("电话:"+telephone);}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getTelephone() {return telephone;}public void setTelephone(String telephone) {this.telephone = telephone;}}

install打包到本地仓库  其他项目可以引入了

在配置文件中

register.user.username=xxxx
register.user.password=xxxx
register.user.telephone=xxxx
 

不配置就是默认值

不引入web也可以  这个就够了

 <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-autoconfigure</artifactId>
                </dependency>

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.8</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.yiyi</groupId><artifactId>register-spring-boot-starter</artifactId><version>0.0.1-SNAPSHOT</version><name>register-spring-boot-starter</name><description>Demo project for Spring Boot</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies>
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-web</artifactId>-->
<!--            <optional>true</optional>&lt;!&ndash;表示依赖不可传递&ndash;&gt;-->
<!--        </dependency>--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins>
<!--            <plugin>-->
<!--                <groupId>org.springframework.boot</groupId>-->
<!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
<!--                <configuration>-->
<!--                    <excludes>-->
<!--                        <exclude>-->
<!--                            <groupId>org.projectlombok</groupId>-->
<!--                            <artifactId>lombok</artifactId>-->
<!--                        </exclude>-->
<!--                    </excludes>-->
<!--                </configuration>-->
<!--            </plugin>--></plugins></build></project>

http://www.lryc.cn/news/419101.html

相关文章:

  • Docker 入门全攻略:安装、操作与常用命令指南
  • mstsc被卸载,远程桌面mstsc.exe重装
  • 从根儿上学习spring 十一 之run方法启动第四段(5)
  • 常见8种数据结构
  • 黑马Java零基础视频教程精华部分_11_面向对象进阶(3)_抽象类、接口、适配器
  • Promethues Metrics
  • 公网IP与私网IP具体有哪些区别?
  • LeetCode——3143. 正方形中的最多点数
  • const重新赋值的问题
  • python开发上位机 - PyCharm环境搭建、安装PyQt5及工具
  • day02-安装虚拟机
  • Qt:线程
  • VisionPro二次开发学习笔记11-使用 Caliper和Fixture定位Blob工具检测方块
  • 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(五)卡尔曼滤波器一:认知卡尔曼滤波器;协方差矩阵与方差;
  • 【Go】通过反射解析对象tag信息,实现简易ORM
  • gemini2相机和宇树雷达L1的使用注意点
  • FPGA开发——verilog随机涵数$random的使用方法
  • Android14 WPA2和WPA3 类型的WiFi网络连接
  • 24/8/5算法笔记 逻辑回归sigmoid
  • 适用于验证码的OCR,识别快速,使用简单!
  • 超简单适合练手的双指针题:判断子序列
  • 打破老美垄断,潘展乐商业价值起飞
  • java面试题:简化URL
  • 用 echarts 开发地图、点击展示自定义信息框
  • Android 应用兼容性变更调试
  • 76 多态
  • 数据采集工具之Canal
  • 【后端】消息中间件小册
  • 【进阶篇-Day14:JAVA中IO流之转换流、序列化流、打印流、Properties集合的介绍】
  • 【Material-UI】Checkbox 组件中的 Label Placement 设置详解