SpringBoot実戦ノート:15_SpringBootカスタムstarter pom
13633 ワード
15_SpringBootカスタムstarter pom
pom.xml
のspringboot依存はstarterです目的:あるクラスが存在する場合、このクラスのBeanを自動的に構成し、Beanの書き込みを
application.properties
に構成することができる.1,Mavenプロジェクトを作成する
2,pomを修正する.xmlファイル
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.zyfgroupId>
<artifactId>spring-boot-starter-demoartifactId>
<version>1.0-SNAPSHOTversion>
<packaging>jarpackaging>
<name>spring-boot-starter-demoname>
<url>http://maven.apache.orgurl>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-autoconfigureartifactId>
<version>1.5.9.RELEASEversion>
dependency>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>3.8.1version>
<scope>testscope>
dependency>
dependencies>
project>
3、属性構成の追加(タイプが安全な属性構成は実際にはクラスです)
package com.zyf.spring_boot_stater_demo;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Created by zyf on 2018/3/7.
*/
// :demo.msg=xxx msg
// , : DEMO
@ConfigurationProperties(prefix = "demo")
public class DemoProperties {
public static final String MSG = " DEMO";
private String msg = MSG;
public static String getMSG() {
return MSG;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
4,判断根拠クラスとしてクラスDemoServiceを作成する
このクラスが存在するかどうかによって、このクラスのBeanを作成するかどうかを決定します.
package com.zyf.spring_boot_stater_demo;
import org.springframework.stereotype.Service;
/**
* Created by zyf on 2018/3/7.
*/
// , DemoService , , Bean
public class DemoService {
private String msg;
public String say(){
return "hello:" + msg;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
5、自分で定義した自動構成が有効になるにはspringに登録する必要があります。factoriesファイル
登録ファイルの内容:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.zyf.DemoServiceAutoConfiguration
6、このstarterを、ローカルmavenライブラリにインストール
7、インストール成功
8、SpringBootプロジェクトを作成し、カスタムstarterをpomにインポート
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-tomcatartifactId>
exclusion>
exclusions>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-jettyartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>com.zyfgroupId>
<artifactId>spring-boot-starter-demoartifactId>
<version>1.0-SNAPSHOTversion>
dependency>
dependencies>
9、右側のMaven Projectsで表示
10、非常に簡単な実行クラス
package com.zyf;
import com.zyf.spring_boot_stater_demo.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class Springboot05Application {
@Autowired
DemoService demoService;
@RequestMapping("/")
public String index(){
return demoService.say();
}
public static void main(String[] args) {
SpringApplication.run(Springboot05Application.class, args);
}
}
11、プレゼンテーション
デフォルトであることがわかります
12、構成ファイルにdebug=trueを設定すると、自動構成に関する情報が表示されます。
カスタマイズされた
DemoServiceAutoConfiguration
が自動的に構成されていることがわかります13、プロファイルにdemoを追加する.msg構成
debug=true
demo.msg="everybody is good , that's real good!"