こんにちは!運営者のハックです!
今回はデイトラJavaコースWebアプリ開発編のDay4として「SpringとSpringBootの違い」について学習しましたので、紹介します。
Springとは
引用:Spring|Home
Springフレームワークは、Javaアプリケーションを効率的に開発するための多機能なフレームワークです。Springを使うと、複雑な作業を簡単にしたり、効率よく作業を進めたりすることができます。
Springの特徴
Springの例
例えば、Webアプリケーションを作る場合、Springを使うと次のようなことが簡単にできます。
- 設定ファイル:アプリケーションの設定を一つのファイルにまとめて管理できます。
- コントローラー:Webページのリクエストを受け取って、適切なレスポンス(応答)を返すための仕組みを簡単に作れます。
- データベース接続:データベースとの接続設定を簡単に行い、データの読み書きをスムーズにできます。
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をどんどん活用してアプリ開発を行っていきたいです。
以上で今回の学習記録を終えます。
ここまでご覧いただきありがとうございました。
コメント