BeanをDIコンテナ(JavaConfig)に記述していましたが、@ComponentScanアノテーションを使用するとエントリポイントのパッケージ配下のBeanを自動でDIに登録してくれます。
この時、Beanクラスには@Componentアノテーションを指定しておく必要があります。
これによりJavaConfigのクラスは不要になります。エントリポイントの@Importアノテーションも不要です。
次にrunメソッドを実装していたBeanもエントリポイントのクラスにCommandLineRunnerインタフェースを実装することにより不要にすることができます。
CommandLineRunnerインタフェースはrunメソッドを実装する必要があります。
まず、文字列連結しているだけのAppendStringクラスです。
以下、ソースです。
1 2 3 4 5 6 7 |
package com.confrage.app; public class AppendString { public String append(String a,String b){ return a + b; } } |
次にエントリポイントのクラスです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
package com.confrage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import com.confrage.app.AppendString; @EnableAutoConfiguration @ComponentScan public class SpringbootDiApplication implements CommandLineRunner{ @Autowired AppendString appStr; public static void main(String[] args) { SpringApplication.run(SpringbootDiApplication.class, args); } @Override public void run(String... strs){ String str = appStr.append("test1", "test2"); System.out.println(str); } } |
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^