SpringでHello World(Java-based Configuration版)
SpringでHelloWorldを出力するプロジェクトの作成してみる。
なお、Spring Bootの機能およびXMLは使用せず、Java-based configurationを使用する。
XMLベースで作成する場合は以下。
SPRING INITIALIZRで下記を指定して作成。
- Maven Project
- Spring Boot:1.4.1
- Group:com.pepese.sample
- Artigact:SpringHelloWorld
- Name:SpringHelloWorld
- Description:sample
- Package Name:com.pepese.sample
- Packaging:Jar
- Java Version:1.8
- Language:Java
- Dependencies:指定無し
SPRING INITIALIZRについては以下参考。
下記のpom.xmlが入ったプロジェクトが生成される。
<?xml version="1.0" encoding="UTF-8"?> <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.0</modelVersion> <groupId>com.pepese.sample</groupId> <artifactId>SpringHelloWorld</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>SpringHelloWorld</name> <description>sample</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
src/main/java配下に以下のクラスを作成する。
- com.pepese.sample.HelloWorld
- インターフェース。
- com.pepese.sample.HelloWorldImpl
- 上記の実装クラス。
- com.pepese.sample.SpringHelloWorldConfig
- Java-based Configurationクラス。
- com.pepese.sample.SpringHelloWorldApplication
- mainメソッドを持つクラス。
package com.pepese.sample; public interface HelloWorld { void sayHello();
package com.pepese.sample; public class HelloWorldImpl implements HelloWorld { @Override public void sayHello() { System.out.println("Hello World !"); } }
package com.pepese.sample; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SpringHelloWorldConfig { @Bean public HelloWorld helloWorld() { return new HelloWorldImpl(); } }
package com.pepese.sample; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class SpringHelloWorldApplication { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(SpringHelloWorldConfig.class); HelloWorld helloWorld = (HelloWorld) context.getBean(HelloWorldImpl.class); helloWorld.sayHello(); } }
「mvn package -Dmaven.test.skip=true」および「java -jar target\SpringHelloWorld-0.0.1-SNAPSHOT.jar」コマンドで実行する。
参考:http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/