Spring Boot

Spring Boot

百技的Hackathon第一次接触了Spring Boot这个框架,总的来说没有特别难的点,确实是工程拆分的好东西。

Spring boot 与 Spring 简介 #

Spring boot 是在spring基础上开发的一套框架,主要是简化了Spring框架复杂的xml配置,简化了依赖的管理,由于我也没有配置过spring框架的xml因此没有体会。

Spring 框架实现了两个主要的设计模式:IOC和AOP, 这是我之前就了解过的,不过并没有对此有任何实践。只记得要对bean类做很多依赖注入的配置,非常繁琐。

Spring boot 的基础使用 #

使用Spring boot可以将web应用直接打包成jar包,内部包含serverlet容器,直接使用:java -jar xxxxx.jar 的方式启动。

  1. 使用maven添加依赖(pom.xml):
<project>
    ...
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
  
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>
...
</project>

重点就是引入了一个parent和两个starter。

  1. 创建应用的启动类:

package com.xxxxx.xx;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloWorldApplication {
    public static void main(String[] args) {
        SpringApplication.run(helloWorldApplication.class, args);
    }
}
  1. 打包的pom.xml中要配置主启动类。
<project>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- 指定该Main Class为全局的唯一入口 -->
                    <mainClass>com.xxx.xxx.HelloWorldWebApplication</mainClass>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>