一,starter模块整体结构 starter的整体实现逻辑主要由两个基本部分组成: xxxAutoConfiguration:自动配置类,对某个场景下需要使用到的一些组件进行自动注入,并利用xxxProperties类来进行组件相关配置 xxxProperties:某个场景下所有可配置属性的集成,在配置文件中配置可以进行属性值的覆盖 按照SpringBoot官方的定义,Starer的作用...
SpringBoot会自动帮我们生成使用@ConfigurationProperties注解下的类的属性提示,在配置application.yml文件的时候会自动提示。生成的文件夹在Jar的META-INF/spring-configuration-metadata.json文件里面。 如果我们想要自定义一些提示,并且限制用户输入某些属性的值,需要在开发starter的项目里面的META-INF文件夹下,创建additional-...
新建一个openai-freedom-demo项目,里边包含两个模块,一个模块为openai-freedom-spring-boot-autoconfigure,主要用来自动配置openaiservice bean,一个为openai-freedom-spring-boot-starter,主要用来管理依赖。将openai-freedom-spring-boot-autoconfigure依赖添加到starter模块中。其他第三方引用你开发的jar时,只需引用starter模...
austin-spring-boot-starter-autoconfigurer的pom文件 3、在austin-spring-boot-starter的pom文件中引入自动配置模块,如下所示 4、在austin-spring-boot-starter-autoconfigurer下新建HelloProperties、HelloService、HelloServiceAutoConfiguration 5、resources下面新建META-INF-spring.factories文件 内容如下 因为starter是依赖au...
一、spring-boot-starter简介 使用spring-boot时,只要引入官方提供的starter,就可以获取到我们想要用的Bean,做到真正的开箱即用。当然,我们也可以自己写一个starter,比如封装一些第三方服务的连接代码,类似于jedis,或者封装一些其他的通用代码。下面我们写个自定义starter,感受一下。
这个mybatis-spring-boot-starter包含了如下内容: 其中xxx-jdbc、mybatis、mybatis-spring是mybatis关键依赖,其中xxx-autoconfigure就是自动配置相关的jar包,里面包含内容如下: 其中XXXAutoConfiguration是自动配置类,MybatisProperties是Mybatis的属性配置类(在springboot的yaml文件中,对mybatis写的配置信息就是此类提供编写...
spring-boot-starter-jdbc与数据访问 为了使Spring Boot成为我们自动配置数据访问的基础设施,我们需要直接或者间接地依赖spring-jdbc,当spring-jdbc位于SpringBoot应用的classpath路径时,会触发数据访问相关的自动配置行为。 最简单的做法就是把spring-boot-starter-jdbc添到应用的依赖文件中。默认情况下,如果我们没有配置...
很明显,@EnableAutoConfiguration 这个注解使用的是第二种情况,导入@Import(AutoConfigurationImportSelector.class) 类,借助于AutoConfigurationImportSelector, @EnableAutoConfiguration 可以帮助SpringBoot 应用将所有符合条件的@Configuration 配置都加载到当前SpringBoot 创建并使用IoC容器。
在做SpringBoot开发时,各种starter (场景启动器) 必不可少,它们就像可插拔式的插件,只要在pom文件中引用 springboot 提供的场景启动器, 再进行少量的配置就可以使用相应的功能,但SpringBoot并不能囊括我们的所有使用场景,这时候就需要我们自定义starter来实现定制化功能。
1)spring-boot-starter-parent,这个是所有SpringBoot工程都需要加入的依赖项,可以说这个是一个“根依赖”,必须要加入,注意这里指定的版本号也会约束其他依赖项,相当于一个最上层的版本配置,这里指定的就是我们常说的SpringBoot的版本。 2)spring-boot-starter-web,这个是Web工程的依赖项,所有的Web程序都要加。