本篇文章为大家展示了如何实现自动配置弹簧引导框架,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强> 1,新建起动器的Maven项目强>
我这里以IntelliJ IDEA创建项目为例,其实很简单,创建一个Maven项目,但是注意创建的时候选择快速入门,步骤如下:
& lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-autoconfigure & lt; version> 1.4.2.RELEASE & lt;/dependency>
<强> 3。属性配置强>
@ConfigurationProperties(前缀=癶ello") 公开课HelloServiceProperties { 私有静态最终字符串味精=皐orld"; 私人字符串味精=味精; 公共字符串getMsg () { 返回味精; } 公共空间setMsg(字符串味精){ 这一点。味精=味精; } }
这里就是一个简单的类,和上篇博客中我们提到的类型安全的属性获取是一致的,这里属性的值我们可以在application.properties中来直接设置,如果不设置的话默认为世界。
<强> 4。判断依据类强>
公共类HelloService { 私人字符串味精; 公共字符串sayHello () { 返回“你好“+味精; } 公共字符串getMsg () { 返回味精; } 公共空间setMsg(字符串味精){ 这一点。味精=味精; } }
我们一会的例子就是根据这个类是否存在来创建这个类的Bean,当然这个类也可以是第三方类库。
<强> 5。自动配置类强>
@ configuration @EnableConfigurationProperties (HelloServiceProperties.class) @ConditionalOnClass (HelloService.class) @ConditionalOnProperty(前缀=癶ello"、价值=https://www.yisu.com/zixun/捌粲谩?matchIfMissing=true) 公开课HelloServiceAutoConfiguration { @ autowired 私人HelloServiceProperties HelloServiceProperties; @ bean 公共HelloService HelloService () { HelloService HelloService=new HelloService (); helloService.setMsg (helloServiceProperties.getMsg ()); 返回helloService; } }
这里@ConditionalOnClass注解主要是用来判断HelloService这个类在路径中是否存在,在存在且容器中没有该类的Bean的情况下系统会自动配置需要的Bean, @ConditionalOnProperty注解则表示指定的属性要满足的条件,在HelloService方法中我们则使用了HelloServiceProperties提供的参数。
<强> 6。注册配置强>
在资源目录下新建meta - inf目录,然后在meta - inf目录下创建春。工厂文件,文件内容如下,表示设置自动配置类的位置,若有多个配置类用”、“隔开即可。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.sang。HelloServiceAutoConfiguration
正常情况下我们按步骤一创建出来的项目是没有资源这个文件夹的,在IntelliJ IDEA这个工具中,我们需要先创建一个目录,然后将之设置为资源根即可,设置方式如下:选中资源目录右键单击-》马克目录》资源根。
<强> 7。在项目中使用强>
好的,经过上面几个步骤我们的自动配置功能就算死写好了,接下来我们要在自己的项目中来使用它了,正常情况下做好自动配置类之后我们需要将之上传到maven私服上然后直接在项目中引用,也可以将之安装到本地库,这里我选择后者的一个简化方式,直接创建模块来引用这个自动配置模块(如果小伙伴是用STS或者MyEclipse之类的开发工具直接创建新工程然后添加引用类库即可)。
创建模块方式很简单,选中刚才的项目右键单击,新的一个模块,这个模块是一个SpringBoot项目(不清楚怎么创建SpringBoot项目可以查看这篇文章初识弹簧引导框架),创建成功之后选择新建的模块按F4打开模块设置,然后选择右边的加号添加依赖,如下: