Spring Boot Starterを開発します。
6212 ワード
前の記事では、starterが自動配置を実現する基本的な流れを理解しました。この短い結び目で前のプロセスを再現し、カスタムstarterを実現します。
まずstarterの需要を分析します。プロジェクトにカスタムのstarter依存を追加し、自動的にSpringにstarterのBeanをロードする。 指定構成 をappication.propertiesからロードする。
プロジェクトを作成は、まずstarterという項目を作成します。 は、resorcessにおいてMETA−INFのディレクトリを作成し、 DemoAutoConfigの構成クラス ConfigrationPropties対応するDemoStarterPropties は、試験用ビーンを作成し、ConfigrationProptiesクラスの情報を使用する。最初はこのCofigrationPropties類の使い方が分かりませんでした。ただし、スプリングの中で最も一般的なのはビーンです。@ConfigrationPropties注釈の種類を通して、自動的にSpring容器の中にビーンを自動的に作成すると大胆に推測できます。私達は使う時に普通のbean注入方式でCofigrationPropties類の情報を使うことができます。したがって、このようにしてテストBean ここに来て、私たちのstarterが作成されました。mvnパッケージを通して、または同じ親プロジェクトの異なる子Moduleを作成する方法で、このstarterが有効かどうかをテストすることができます。
試験クラスの作成
テストクラスはspring boot webプロジェクトを使用して完成し、主にRestControllerを作成し、RestControllerを通じてSpringコンテキストに登録されたbean namesとstarterのテストBeanを取得します。
pom.xml
RertController:
テスト
127.1.0.1:8080/get Listインターフェースにアクセスして、最後のいくつかのbean Namesを見ることができます。
appication.propertiesが設定されていない場合は、直接アクセスします。http://127.0.0.1:8080/getDemoBeanテスト用のビーンの例ではデフォルトのパラメータ構成defaultを取得することができます。
appication.propertiesを追加:
結び目
ここでは、我々はSpringBoot Starterの開発の最も基本的な流れを理解していると言ってもいいです。私たちは日常的なプロジェクトで中開発のようなstarterを試してみます。
転載先:https://www.cnblogs.com/NinWoo/p/11305650.html
まずstarterの需要を分析します。
プロジェクトを作成
4.0.0
top.ninwoo
demo-starter
1.0.0
jar
org.springframework.boot
spring-boot
2.1.6.RELEASE
spring.factories
をディレクトリに作成する。この構成では、EnbaleAutoConfigration項目のみを設定し、DemoAutoConfiggプロファイルクラスのみを設定します。org.springframework.boot.autoconfigure.EnableAutoConfiguration=top.ninwoo.config.DemoAutoConfig
package top.ninwoo.config;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableConfigurationProperties(DemoStarterProperties.class)
public class DemoAutoConfig {
@Bean
DemoBean demoBean() {
return new DemoBean();
}
}
を作成しました。私たちは主に@Configrationと@EnbaleConfigrationProptiesの二つの注釈を使いました。EnbaleConfigrationProptiesはConfigrationProptiesを有効にします。package top.ninwoo.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "top.ninwoo.demo")
public class DemoStarterProperties {
private String name = "default";
private int age = 0;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
を作成してCofigrationProptiesクラスを作成します。このクラスは主にappication.propertiesから構成項目を読み取り、対応するフィールドに自動的に設定します。package top.ninwoo;
import javax.annotation.Resource;
public class DemoBean {
@Resource
DemoStarterProperties properties;
public String getName() {
return properties.getName();
}
public String getAge() {
return getAge();
}
}
を作成し、DemoAutoConfigで@Bean注釈を使ってBeanを作成します。試験クラスの作成
テストクラスはspring boot webプロジェクトを使用して完成し、主にRestControllerを作成し、RestControllerを通じてSpringコンテキストに登録されたbean namesとstarterのテストBeanを取得します。
pom.xml
4.0.0
top.ninwoo
springboot-demo
1.0.0
spring-boot-starter-parent
org.springframework.boot
2.1.6.RELEASE
org.springframework.boot
spring-boot-starter-web
top.ninwoo
demo-starter
1.0-SNAPSHOT
pomファイルには、先ほど実現したstarterを追加しました。RertController:
@RestController
public class IndexController implements ApplicationContextAware {
ApplicationContext ctx = null;
@Resource
DemoBean demoBean;
@RequestMapping("/getList")
public String[] getBeanNames() {
return ctx.getBeanDefinitionNames();
}
@RequestMapping("/getDemoBean")
public String demoBean() {
return demoBean.getName();
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ctx = applicationContext;
}
}
SpringBoot起動タイプMainApp:package top.ninwoo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MainApp {
public static void main(String[] args) {
SpringApplication.run(MainApp.class, args);
}
}
私たちは通常のウェブプロジェクトと比べて、スタートクラスを変更していない依存性を追加しただけです。テスト
127.1.0.1:8080/get Listインターフェースにアクセスして、最後のいくつかのbean Namesを見ることができます。
...,"top.ninwoo.config.DemoAutoConfig","demoBean","top.ninwoo.demo-top.ninwoo.config.DemoStarterProperties"]
これは,我々starter依存を注入することにより,Springの文脈でstarter配置クラスのBeanが作成されたことを証明している。appication.propertiesが設定されていない場合は、直接アクセスします。http://127.0.0.1:8080/getDemoBeanテスト用のビーンの例ではデフォルトのパラメータ構成defaultを取得することができます。
appication.propertiesを追加:
top.ninwoo.demo.name=joliu
プロジェクトを再起動し、再度このインターフェースにアクセスして、テスト用のビーンのインスタンスに対応する属性が設定クラスのパラメータをインストールして設定されていることを発見し、joliuに戻りました。結び目
ここでは、我々はSpringBoot Starterの開発の最も基本的な流れを理解していると言ってもいいです。私たちは日常的なプロジェクトで中開発のようなstarterを試してみます。
転載先:https://www.cnblogs.com/NinWoo/p/11305650.html