ぺーぺーSEのブログ

備忘録・メモ用サイト。

SpringでHello World(Java-based Configuration版)

SpringでHelloWorldを出力するプロジェクトの作成してみる。
なお、Spring Bootの機能およびXMLは使用せず、Java-based configurationを使用する。
XMLベースで作成する場合は以下。

blog.pepese.com


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については以下参考。

blog.pepese.com


下記の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/