SpringBoot从入门到熟悉(一)快速入门

本文介绍如何使用SpringBoot简化Spring应用的构建过程,通过Maven快速搭建项目,引入Web模块实现HTTP请求处理,体验其结构简单、开发快速的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

相信在你第1次接触和学习Spring框架的时候,就已经为其及其繁琐的配置过程而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!

官方是这样介绍Springboot的:http://spring.io/projects/spring-boot

对,没错,Just Run!!!

Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring引用。你也可以打包你的应用为jar并通过使用java -jar来运行你的Spring Web应用。

使用spring boot有什么好处

平时如果我们需要搭建一个spring web项目的时候需要怎么做呢?

  • 1)配置web.xml,加载spring和spring mvc
  • 2)配置数据库连接、配置spring事务
  • 3)配置加载配置文件的读取,开启注解
  • 4)配置日志文件
  • 配置完成之后部署tomcat 调试

现在非常流行微服务,如果我这个项目仅仅只是需要发送一个邮件,如果我的项目仅仅是生产一个积分;我都需要这样折腾一遍!

但是如果使用spring boot呢?
很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目或者是构建一个微服务!

通过本系列文章,希望各位不仅会知道怎么使用springboot配置项目,而且还知道自己在干什么

快速入门

本章主要目标完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理,通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。

系统要求:

  • Java 8及以上
  • Spring Framework 4.1.5及以上

本文采用Java 1.8Spring Boot 2.0 调试通过。

使用Maven构建项目

  • 1、访问 http://start.spring.io/
  • 2、选择构建工具Maven Project、Java语言、Spring Boot版本2.0.5以及一些工程基本信息,可参考下图所示:
  •  
  • 3、点击Generate Project下载项目压缩包
  • 4、解压后,使用File–>New–>Project from Existing Sources...选择解压后的项目文件夹,点击OK,点击Import project from external model并选择Maven,然后Next,Next到底为止。

项目结构解析

通过上面步骤完成了基础项目的创建,如上图所示,Spring Boot的基础结构共三个文件(具体路径根据用户生成项目时填写的Group所有差异):

  • src/main/java下的程序入口:BootApplication
  • src/main/resources下的配置文件:application.properties
  • src/test/下的测试入口:BootApplicationTests

生成的BootApplicationBootApplicationTests类都可以直接运行来启动当前创建的项目,由于目前该项目未配置任何数据访问或Web模块,程序会在加载完Spring之后结束运行。

另外,spingboot建议的目录结果如下:
root package结构:com.example.myproject

com
  +- example
    +- myproject
      +- Application.java
      |
      +- domain
      |  +- Customer.java
      |  +- CustomerRepository.java
      |
      +- service
      |  +- CustomerService.java
      |
      +- controller
      |  +- CustomerController.java
      |
  • 1、Application.java 建议放到根目录下面,主要用于做一些框架配置
  • 2、domain目录主要用于实体(Entity)与数据访问层(Repository)
  • 3、service 层主要是业务类代码
  • 4、controller 负责页面访问控制

采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改。

引入Web模块

1.当前的pom.xml内容如下,springboot已经自动仅引入了两个模块:

  • spring-boot-starter:核心模块,包括自动配置支持、日志和YAML
  • spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito
	<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>

2.在pom.xml中添加支持web的模块:添加spring-boot-starter-web模块:

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

 3.编写HelloWorld服务

  • 创建一个新package命名为com.zerah.boot.controller(根据实际情况修改)
  • 创建HelloController类,内容如下

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String index(){
        return "hello springBoot";
    }

}
  • 启动主程序【BootApplication.java的main方法】,打开浏览器访问http://localhost:8080/hello,可以看到页输出
     

    单元测试

打开的src/test/下的测试入口Chapter1ApplicationTests类。下面编写一个简单的单元测试来模拟http请求,具体如下:

@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloTest {
    private MockMvc mvc;

    @Before
    public void setUp() {
        mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
    }
    @Test
    public void getHello() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect((ResultMatcher) content().string(equalTo("hello springBoot")));
    }

}

使用MockServletContext来构建一个空的WebApplicationContext,这样我们创建的HelloController就可以在@Before函数中创建并传递到MockMvcBuilders.standaloneSetup()函数中。 

  • 注意引入下面内容,让statuscontentequalTo函数可用
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

至此已完成目标,通过Maven构建了一个空白Spring Boot项目,再通过引入web模块实现了一个简单的请求处理。 

 

注:springBoot开发环境

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
</plugins>
</build>

该模块在完整的打包环境下运行的时候会被禁用。如果你使用java -jar启动应用或者用一个特定的classloader启动,它会认为这是一个“生产环境”。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值