目录
了解SpringBoot Starter相关概念以及开发流程
目的
-
了解SpringBoot Starter相关概念以及开发流程
-
实现自定义SpringBoot Starter(全局加解密)
-
了解测试流程
-
优化
最终引用的效果:
<dependency>
<groupId>com.xbhog</groupId>
<artifactId>globalValidation-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
开源地址
https://gitee.com/xbhog/encry-adecry-spring-boot-starter
了解SpringBoot Starter相关概念以及开发流程
SpringBoot Starter
SpringBoot Starter作用将一组相关的依赖打包,简化项目的配置和初始化过程,通过特定的Starter开发者可以快速的实现特定功能模块的开发和扩展。
自定义Starter能够促进团队内部资源的复用,保持项目间的一致性,提升协作效率并且有助于构建稳定、高效的大型系统。
开发流程
注入SpringBoot的方式
在刚开始开发Starter的时候,首先考虑的是怎么能注入到SpringBoot中?
这部分涉及到部分SpringBoot的自动装配原理,不太清楚的朋友可以补习下;
注入SpringBoot需要配置文件,在项目中的resources资源目录中创建该目录和文件。
demo-spring-boot-starter
└── src
└── main
└── java
└── com.xbhog
├── DemoBean.java
└── DemoBeanConfig.java
└── resources
└── META-INF
└── spring.factories
在spring.factories中我们指定一下自动装配的配置类,格式如下:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.xbhog.DemoBeanConfig
/**
* @author xbhog
* @describe:
*/
@Slf4j
@Configuration
public class DemoBeanConfig {
@Bean
public DemoBean getDemo() {
log.info("已经触发了配置类,正在初始化DemoBean...");
return new DemoBean();
}
}
@Slf4j
public class DemoBean {
public void getDemo(){
log.info("方法调用成功");
}
}
这样就可以将设置的包扫描路径下的相关操作打包到SpringBoot 中。
SpringBoot主类启动器:初始化的操作,感兴趣的朋友可以研究下
完成后,我们可以打包该项目,然后在测试工程红进行Maven的引入、测试。
测试
新建Spring 测试工程,引入依赖:
<dependency>
<groupId>com.xbhog</groupId>
<artifactId>demo-spring-boot-starter</artifactId>
<version>1.0</version>
</dependency>
@RestController
public class BasicController implements ApplicationContextAware {
private ApplicationContext applicationContext;
/**两种引入方式都可以
@Autowired
private DemoBean demoBean;*/
@GetMapping("/configTest")
public void configTes