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

药品在网站上做标签有哪些分类建站推荐

药品在网站上做标签有哪些分类,建站推荐,网站单页在线制作软件,软件开发用什么语言文章目录 面试简说详细实现步骤 示例(以“自定义一个工具类 Starter,实现字符串加前缀功能”为例 )一、创建 Maven 模块(2 个模块结构,也可合并为 1 个,规范推荐拆分 )二、编写 autoconfigure …

文章目录

      • 面试简说
      • 详细实现步骤 + 示例(以“自定义一个工具类 Starter,实现字符串加前缀功能”为例 )
        • 一、创建 Maven 模块(2 个模块结构,也可合并为 1 个,规范推荐拆分 )
        • 二、编写 `autoconfigure` 模块(以 Maven 项目为例 )
        • 三、编写 `starter` 模块(依赖管理 )
        • 四、打包发布
        • 五、测试自定义 Starter
      • 核心要点总结

面试简说

面试时可简洁概括:自定义 Starter 是把通用功能(如日志、工具类)封装成可复用模块,让其他项目引依赖即自动配置 。核心是利用 Spring Boot 自动配置原理,通过 spring.factories(或 3.x+ 的 AutoConfiguration.imports)指定自动配置类,结合条件注解(@Conditional)按需加载 Bean,还可通过 @ConfigurationProperties 绑定配置 。

详细实现步骤 + 示例(以“自定义一个工具类 Starter,实现字符串加前缀功能”为例 )

一、创建 Maven 模块(2 个模块结构,也可合并为 1 个,规范推荐拆分 )
  • xxx-spring-boot-autoconfigure:负责自动配置逻辑(核心)
  • xxx-spring-boot-starter:负责依赖管理(引入 autoconfigure 及相关依赖,让使用者只需引 starter 即可 )
二、编写 autoconfigure 模块(以 Maven 项目为例 )
  1. 添加依赖pom.xml):引入 Spring Boot 自动配置基础依赖
<dependencies><!-- Spring Boot 自动配置核心 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency><!-- 配置属性提示(可选,让 application.yml 有配置提示) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>
</dependencies>
  1. 定义配置属性类PrefixProperties.java):绑定 application.yml 配置
import org.springframework.boot.context.properties.ConfigurationProperties;
// 前缀,配置时用 "custom.prefix" 开头
@ConfigurationProperties(prefix = "custom.prefix") 
public class PrefixProperties {// 默认前缀,可通过配置覆盖private String value = "DEFAULT_"; public String getValue() { return value; }public void setValue(String value) { this.value = value; }
}
  1. 定义功能类PrefixService.java):实现业务逻辑
public class PrefixService {private final String prefix;public PrefixService(String prefix) { this.prefix = prefix; }// 核心功能:给字符串加前缀public String addPrefix(String content) {return prefix + content;}
}
  1. 编写自动配置类PrefixAutoConfiguration.java):控制 Bean 加载条件 + 注册 Bean
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
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 // 标记为配置类
// 确保 PrefixService 类在类路径中(引入 starter 就会包含,所以可触发)
@ConditionalOnClass(PrefixService.class) 
// 启用配置属性绑定,关联 PrefixProperties
@EnableConfigurationProperties(PrefixProperties.class) 
public class PrefixAutoConfiguration {@Autowiredprivate PrefixProperties properties;// 当容器中没有 PrefixService Bean 时,才创建(支持用户自定义覆盖)@ConditionalOnMissingBean(PrefixService.class) @Beanpublic PrefixService prefixService() {// 使用配置属性的值初始化功能类return new PrefixService(properties.getValue()); }
}
  1. 配置自动配置入口Spring Boot 2.xspring.factories3.x+ 推荐 AutoConfiguration.imports
  • 方式 1(兼容旧版):在 src/main/resources/META-INF/spring.factories 中添加
# 关联自动配置类,让 Spring Boot 启动时扫描
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.custom.PrefixAutoConfiguration
  • 方式 2(Spring Boot 3.x+ 推荐):在 src/main/resources/META-INF/spring/AutoConfiguration.imports 中直接写类名
com.example.custom.PrefixAutoConfiguration
三、编写 starter 模块(依赖管理 )
  1. 添加依赖pom.xml):引入 autoconfigure 模块 + 必要依赖
<dependencies><!-- 引入自动配置模块 --><dependency><groupId>com.example</groupId><artifactId>custom-spring-boot-autoconfigure</artifactId><version>1.0.0</version></dependency><!-- 继承 Spring Boot 基础依赖(可选,让 starter 更完整) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency>
</dependencies>
四、打包发布
  • 分别对 autoconfigurestarter 模块执行 mvn clean install,发布到本地 Maven 仓库(或私服 )
五、测试自定义 Starter
  1. 新建 Spring Boot 项目,引入自定义 Starter 依赖:
<dependency><groupId>com.example</groupId><artifactId>custom-spring-boot-starter</artifactId><version>1.0.0</version>
</dependency>
  1. 配置 application.yml(可选,覆盖默认前缀 ):
custom:prefix:value: "CUSTOM_" # 自定义前缀,不配置则用默认 "DEFAULT_"
  1. 编写测试类(注入 PrefixService 并使用 ):
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class TestController {@Autowiredprivate PrefixService prefixService;@GetMapping("/test")public String test() {// 输出:CUSTOM_Hello(若配置了 prefix.value=CUSTOM_ )return prefixService.addPrefix("Hello"); }
}
  1. 启动项目,访问 /test,验证功能是否生效

核心要点总结

  • 自动配置触发:通过 spring.factoriesAutoConfiguration.imports 让 Spring Boot 发现配置类
  • 条件控制@ConditionalOnXxx 系列注解(如 @ConditionalOnClass@ConditionalOnMissingBean )决定配置是否生效,避免冲突
  • 配置绑定@ConfigurationProperties + @EnableConfigurationProperties 实现配置动态注入
  • 依赖解耦:拆分 autoconfigurestarter,让依赖管理更清晰,符合 Spring Boot 生态规范

这样就完成了一个自定义 Starter 的开发,既体现了“约定优于配置”,又支持灵活扩展,面试中按此思路讲清 “封装通用功能→自动配置→条件加载→配置绑定” 逻辑,就能清晰展示对 Starter 的理解~

http://www.dtcms.com/wzjs/667878.html

相关文章:

  • 网络营销的企业网站平台推广是什么意思
  • 深圳市住房建设局网站怎么打不开上海房产网签
  • 腾讯云购买域名后如何建网站郑州现在可以正常出入吗
  • 外贸网站建设 全球搜番禺绿叶居
  • 做网站好处建设网站需要哪些手续
  • 360提交网站入口html导入到wordpress
  • 山东住房与城乡建设厅网站公司介绍网站平台搭建设计论文
  • 荼叶公司网站模板网站开发进度安排文档
  • 湘西做网站商城和营销型网站建设
  • 开发网站公司排行没有网站可以做cpa广告么
  • 渭南网站制作学校国外免费建站网站不用下载
  • 做游戏视频网站要批证吗南京网站开发建设
  • 网站开发哪里接到单子的网站开发的硬件环境要求
  • 网站怎么广告投放小程序商城推广哪家好
  • 哈尔滨建站系统报价个人动漫网站怎么做页面
  • 公司做的网站费用计入什么科目做网站设计管理的专业
  • 网站开发人员负责方面抖音广告怎么投放
  • 代理加盟网站凡科登录入口app下载
  • 免费页面网站网页版梦幻西游仙玉攻略
  • 旅游网站开发代码网页建站平台建设
  • 京口区建设局网站响应式网站开发费用
  • wap网站域名百度为什么不收录网站的某个版块
  • 网站设计制作视频开发app需要多少钱?
  • 十大免费ppt网站软件公众号取名简单大气
  • 辽阳专业网站开发公司服装网站建设进度及实施过程
  • 可以做外链网站网站建设好后有些什么资料
  • 广州建设网站哪个好计算机培训班哪些好
  • 网站建设需要的软件是什么平江外贸推广软件
  • 河南建设网站公司简介电商软件开发费用
  • 建设银行深圳分行网站计算机专业主要学什么学科