学習と理解の最初の数の後、我々はspringbootプロジェクトは、我々はあなたが起動したときにやりたい何かをすることができ、springbootのためのスターターをカスタマイズすることができます(などリスニング・ポート、など)
具体的な実装手順:
新しいMavenプロジェクトを作成します。1.
だけでなく、相続springboot(追加機能、などのデータベースなど、他の依存関係を導入する必要性を必要とする場合)2.pomファイルの依存関係を導入しなければなりません
ここでは私のMavenプロジェクト、たartifactId、バージョンをGROUPID
<groupId>org.jym</groupId>
<artifactId>com-jym-starter-test</artifactId>
<version>1.0-SNAPSHOT</version>
継承する必要があります。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
</parent>
私たちは、導入する必要があります。
<dependencies>
<!-- springboot自定义starter规范 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
</dependencies>
3.次に書き込みビジネスコード、ここでは簡単な出力文を書くこと:
プロジェクト構造:
私はのconfigureカテゴリに話をしてみましょう:
@ConfigurationProperties注:このようなメンテナンス性クラスの説明、属性がapplication.propertiesに構成することができ、注釈経路の値、例えば:com.jym.name = 12138
package com.jym.properties;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* @program: com-jym-starter-test
* @description: 配置属性的类,开发者可在springboot配置文件里配置
* @author: jym
* @create: 2020/01/24
*/
@ConfigurationProperties("com.jym")
public class JymProperties {
private String name = "jym"; // 默认值为jym
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
インタフェース:
package com.jym;
/**
* @program: com-jym-starter-test
* @description: 一个测试接口
* @author: jym
* @create: 2020/01/24
*/
public interface JymSayHello {
void sayHello();
}
クラスの実装:
package com.jym.impl;
import com.jym.JymSayHello;
import com.jym.properties.JymProperties;
import org.springframework.beans.factory.annotation.Autowired;
/**
* @program: com-jym-starter-test
* @description: 对JymSayHello的实现
* @author: jym
* @create: 2020/01/24
*/
public class JymSayHelloImpl implements JymSayHello {
@Autowired
private JymProperties jymProperties;
@Override
public void sayHello() {
String name = jymProperties.getName();
System.out.println(name+": hello,springboot");
}
}
springbootソースプロセス、書き込み構成カテゴリを模倣:
package com.jym.configuration;
import com.jym.JymSayHello;
import com.jym.impl.JymSayHelloImpl;
import com.jym.properties.JymProperties;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @program: com-jym-starter-test
* @description: 配置类,需要在springboot启动时自动加载进去
* @author: jym
* @create: 2020/01/24
*/
// 说明配置类
@Configuration
// 条件注解,只有在classpath下指定class文件时,才被实例化bean
@ConditionalOnMissingClass
// 可以通过spring.properties配置属性
@EnableConfigurationProperties({JymProperties.class})
public class JymAutoConfiguration {
// 将JymSayHelloImpl注入进IOC容器里,方法名为BeanId
@Bean
// 条件注解,意思是:仅当ioc容器中不存在指定类型bean时,才会创建
@ConditionalOnMissingBean
public JymSayHello jymSayHello (){
return new JymSayHelloImpl();
}
}
ソースプロセスでは、我々はspring.factoriesに私たちのクラスのコンフィギュレーション・ファイルを維持する必要があるので、spring.factoriesファイルが存在します。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.jym.configuration.JymAutoConfiguration
4.完成したパッケージの必要性がMAVEN、MAVENローカル倉庫かどうかを使用する場合は、エラーがつながることはありません
実行MVNクリーンインストール
その後、カスタムスターターを完了するために!!
プロジェクトspringbootスタータープロジェクトを導入する必要性5. [、ポンポンファイルに依存関係を追加します:
あなたは正しいのgroupId、たartifactId、バージョンを入力する必要があります
<!-- 引入自定义starter -->
<dependency>
<groupId>org.jym</groupId>
<artifactId>com-jym-starter-test</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
6.配置さapplication.propertiesは、属性、設定されていない場合は、デフォルト値に名前を付けます
com.jym.name=12138
テストコード:
package com.jym.demo;
import com.jym.JymSayHello;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author Administrator
*/
@SpringBootApplication()
public class DemoApplication implements CommandLineRunner {
@Autowired
private JymSayHello jymSayHello;
public static void main(String[] args) {
new SpringApplication(DemoApplication.class).run();
}
public void run(String... args) {
jymSayHello.sayHello();
}
}
正常に印刷コンソールを起動した後: