Spring Boot 应用开发指南

在现代Java Web应用开发中,Spring Boot是一个越来越受欢迎的框架。它简化了基于Spring的应用开发,通过提供嵌入式的Web服务器,使得应用部署变得异常简单。本文将介绍如何使用Spring Boot构建一个包含嵌入式容器的Java应用程序,包括Maven依赖、启动应用、添加控制器、配置以及如何服务静态内容。

Maven 依赖

要构建一个Spring Boot应用,首先需要定义Maven的依赖。以下是一个简单的pom.xml文件示例,它包含了构建和打包Spring Boot应用所需的最小Maven依赖。

<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.song.example</groupId> <artifactId>spring-boot-example</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <properties> <spring-boot.version>1.5.7.RELEASE</spring-boot.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>${spring-boot.version}</version> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <finalName>${artifactId}-${version}</finalName> <mainClass>${start-class}</mainClass> <addResources>true</addResources> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>

在这个例子中,spring-boot-starter-web是编译Spring Boot应用的唯一Maven依赖;而spring-boot-maven-plugin插件则是Maven打包Spring Boot应用所必需的。

启动Spring Boot应用

要启动一个Spring Boot应用,可以创建一个类,该类继承自SpringBootServletInitializer并使用@SpringBootApplication注解。以下是一个示例:

package com.song.web.boot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.support.SpringBootServletInitializer; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan({ "com.song.web.boot", "com.song.web.controller" }) public class ApplicationStart extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(ApplicationStart.class, args); } }

@ComponentScan注解告诉Spring Boot需要扫描的包,以查找Spring组件和控制器。

添加控制器

在Spring Boot中,典型的Spring MVC控制器同样适用。控制器类需要位于@ComponentScan路径中。以下是一个示例控制器:

package com.song.web.controller; import java.util.HashMap; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class ExampleController { @RequestMapping(value = "/getAJson", method = RequestMethod.GET) @ResponseBody public HashMap<String, String> getAJson() { HashMap<String, String> map = new HashMap<String, String>(); map.put("Sprint", "boot"); return map; } }

在这个示例控制器中,实现了一个简单的REST服务,它将在GET请求时响应一个HashMap

添加配置

要配置Spring Boot应用,可以创建一个被@Configuration注解的类,类中的每个@Bean方法提供一个配置项。以下是一个示例配置类:

package com.song.web.boot; import javax.servlet.Filter; import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.song.web.filter.NocacheFilter; @Configuration public class ServletConfig { @Bean public EmbeddedServletContainerCustomizer portCustomizer() { return (container -> { container.setPort(8090); }); } @Bean public FilterRegistrationBean noCacheFilter() { Filter filter = new NocacheFilter(); FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(filter); registration.setOrder(1); return registration; } }

portCustomizer()方法告诉应用监听8090端口;noCacheFilter()方法告诉应用对所有Web请求应用一个过滤器。

服务静态内容

要在Spring Boot应用中服务静态内容,可以将静态内容添加到src/main/resources/static文件夹中。以下是一个示例配置,它确保静态内容被打包到JAR文件中:

<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <finalName>${artifactId}-${version}</finalName> <mainClass>${start-class}</mainClass> <addResources>true</addResources> </configuration> </execution> </executions> </plugin>

要构建应用,可以执行以下命令:mvn clean install。可以直接通过以下命令启动应用:mvn spring-boot:run。如果将Maven项目导入Eclipse,可以作为Java应用运行或调试。也可以通过以下命令运行JAR文件:java -jar target/spring-boot-example-0.0.1-SNAPSHOT.jar

无论以何种方式启动应用,如果启动成功,都可以通过浏览器进行测试。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485