Springって何?SpringBootとの違いは? デイトラJavaコース Webアプリ開発編 Day4「SpringとSpringBootの違い」

デイトラJava
ハック
ハック

こんにちは!運営者のハックです!

今回はデイトラJavaコースWebアプリ開発編のDay4として「SpringとSpringBootの違い」について学習しましたので、紹介します。

Springとは

引用:Spring|Home

Springフレームワークは、Javaアプリケーションを効率的に開発するための多機能なフレームワークです。Springを使うと、複雑な作業を簡単にしたり、効率よく作業を進めたりすることができます。

Springの特徴

  • 簡単な設定:Springを使うと、設定ファイルを使ってアプリケーションの設定を簡単に管理できます。たとえば、データベースとの接続設定や、Webサーバーの設定などを簡単に行うことができます。
  • 依存性注入:Springは「依存性注入」という仕組みを提供しています。これは、必要な部品(オブジェクト)を自動的に組み立ててくれる仕組みです。これにより、コードの再利用性が高まり、テストしやすくなります。
  • モジュール化:Springにはたくさんのモジュール(部品)があり、必要な機能だけを選んで使うことができます。例えば、データベースにアクセスするための「Spring Data」や、Webアプリケーションを作るための「Spring MVC」などがあります。
  • 統合サポート:Springは、他のフレームワークやライブラリと簡単に連携できるようになっています。例えば、HibernateやJPAなどのデータベース関連ツールと組み合わせて使うことができます。

Springの例

例えば、Webアプリケーションを作る場合、Springを使うと次のようなことが簡単にできます。

  1. 設定ファイル:アプリケーションの設定を一つのファイルにまとめて管理できます。
  2. コントローラー:Webページのリクエストを受け取って、適切なレスポンス(応答)を返すための仕組みを簡単に作れます。
  3. データベース接続:データベースとの接続設定を簡単に行い、データの読み書きをスムーズにできます。

SpringとSpringBootの違い

ねこ奈
ねこ奈

Day3で学んだSpringBootとの違いって何だにゃ?

モナ
モナ

SpringBootはSpringフレームワークをさらに使いやすくしたツールです。Springと比べると、すぐに使える状態で提供されるため初心者でも使いやすくなっています。

SpringBootの特徴については前回の記事で紹介したので、今回は両者の違いについて紹介します。

具体的な違いの例

Springでは、Webアプリケーションを設定する際に、XMLファイルやJavaコードで詳細な設定を行う必要があります。

モナ
モナ

まず、XMLファイルを使った設定方法ですと、以下のような手順を踏みます。

1.Mavenプロジェクトの場合、pom.xmlにSpringの依存関係を追加します。

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.10</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.10</version>
    </dependency>
</dependencies>

2.次にWEB-INFフォルダにapplicationContext.xmlという名前の設定ファイルを作成します。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- サービスクラスの定義 -->
    <bean id="myService" class="com.example.MyService"/>

    <!-- コントローラクラスの定義 -->
    <bean id="myController" class="com.example.MyController">
        <property name="myService" ref="myService"/>
    </bean>
</beans>

3.WEB-INFフォルダにdispatcher-servlet.xmlという名前の設定ファイルを作成します。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/mvc
           http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- コンポーネントスキャン -->
    <context:component-scan base-package="com.example"/>

    <!-- デフォルトのハンドラマッピングとハンドラアダプタ -->
    <mvc:annotation-driven/>

    <!-- ビューリゾルバの定義 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

4.web.xmlファイルでSpringのディスパッチャーサーブレットを定義します。

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
            http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>
ねこ奈
ねこ奈

今までの学習ででてきたSpigotの設定みたいだにゃ。

モナ
モナ

これが、SpigotBootを用いると以下のように初期設定がほぼ不要で、@SpringBootApplicationアノテーションを付けるだけで、基本的な設定が自動で行われます。

// Spring Bootの例
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}
ねこ奈
ねこ奈

労力が全然違うのにゃ!?

モナ
モナ

このように、Spring Bootを使うと設定や構成がシンプルになり、迅速にアプリケーション開発を始めることができます。

Springが決して劣っているという訳ではなく、それぞれの強みを活かして活用されます。Springは細かい制御が必要な大規模なプロジェクトに向いておりSpring Bootは素早く開発を進めたい小規模から中規模のプロジェクトに適しています。

まとめ 新しいプロジェクトの場合はほぼSpringBootが使用される

今回はSpringとは何かを学習し、さらにSpringとSpringBootの違いを学習しました。

ハック
ハック

SpringBootは設定や構成がシンプルになるので、開発しやすくなると思います。

自分もこれからはSpringBootをどんどん活用してアプリ開発を行っていきたいです。

以上で今回の学習記録を終えます。

ここまでご覧いただきありがとうございました。

コメント

タイトルとURLをコピーしました