03-boot2
このプロジェクトはSpring Initializrで雛形を作成後、02-spring5-answerのほぼ全てのファイルをコピーして作成しています。 Spring Bootによってどの設定が不要になるのか(もしくは変わらず必要なのか)を確認しながらTODOを進めてください。
すべて
Applicationクラスは、Spring Bootの起点となるクラスです。
@SpringBootApplication
アノテーションをクラスに付加してください。
pom.xmlを確認してください。各種Starterライブラリによって、指定するライブラリが少なくなっていることを確認してください(変更不要)。
DataSourceConfigクラスは、組み込みDataSourceをBean定義しています。 このBeanはAuto Configuration対象のため、Spring BootがBeanを作成します。 よってこのJava Configクラスは不要のため、ファイルごと削除してください。
組み込みDBの初期化で利用するSQLファイルの文字コードは、application.propertiesに指定します。 下記のプロパティを追記してください。
spring.datasource.sql-script-encoding=utf-8
JdbcConfigクラスは、Spring Data JDBC関連のBeanを定義しています。
コンポーネントスキャンは@SpringBootApplication
によって行われます。
リポジトリインタフェースのスキャン、NamedParameterJdbcTemplate
のBean定義などはSpring BootのAuto Configurationクラスによって行われます。
よってこのJava Configクラスは不要のため、ファイルごと削除してください。
config
パッケージも不要なので削除してください。
ServiceConfigクラスは、トランザクション関連の設定を記述しています。
これらは全てAuto Configuration対象のため、Spring BootがBeanを作成します。
よってこのJava Configクラスは不要のため、ファイルごと削除してください。
config
パッケージも不要なので削除してください。
MvcConfigクラスは、Spring MVC関連の設定を記述しています。 これらは全てAuto Configuration対象のため、Spring BootがBeanを作成します。 よってこのJava Configクラスは不要のため、ファイルごと削除してください。
MvcInitializerクラスは、DispatcherServletをサーバーに登録しています。
これはAuto Configuration対象のため、Spring Bootが行います。
よってこのクラスは不要のため、ファイルごと削除してください。
config
パッケージも不要なので削除してください。
web.xmlでは、サーブレットフィルターの登録を行っています。
CharacterEncodingFilter
およびspringSecurityFilterChain
はAuto Configuration対象のため、Spring Bootが登録を行います。
また、その他のフィルター(LoggingFilter
など)は別の方法で登録を行います(次のTODO)。
よってこのXMLは不要のため、src/main/webapp
フォルダごと削除してください。
Spring Bootでは、FilterRegistrationBean
をBean定義することでサーブレットフィルターを登録します。
Applicationクラスに、下記の記述を追加してください。
@Bean
public FilterRegistrationBean loggingFilter() {
LoggingFilter loggingFilter = new LoggingFilter();
FilterRegistrationBean<LoggingFilter> registrationBean = new FilterRegistrationBean<>(loggingFilter);
// フィルターの順番を一番最初に指定
registrationBean.setOrder(Integer.MIN_VALUE);
// url-patternを指定
registrationBean.addUrlPatterns("/*");
return registrationBean;
}
SecurityConfigクラスは、Spring Security関連の設定を記述しています。
Spring Boot 2.0からは、Security関連の設定はJava Configで記述するため、このクラスのほとんどの設定が必要です。
ただし、@ComponentScan
のみ不要のため、削除してください。
logback.xmlは、Logback関連の設定を記述しています。 Spring Bootでは、ログの設定はすべてapplication.propertiesに記述するため(次のTODO)、logback.xmlはファイルごと削除してください。
application.propertiesに、ログレベルなどの設定を記述します。 下記を追記してください。
logging.level.org.springframework.jdbc.core.JdbcTemplate=debug
Applicationクラスのmain()メソッドを実行してください。 ブラウザから http://localhost:8080/ を開いて、01-spring5と同様の挙動であることを確認してください。 確認後は、アプリケーションを停止してください。
Spring Bootで作成したWebアプリケーションには、コンテキストルート(01-spring5の
/sample
)は有りません。 (application.propertiesで任意のコンテキストルートを付ける設定を記述することもできます)
これで演習5は完成です。 次の演習はtodo-6.mdに書かれています。