转载请标明出处:
http://blog.csdn.net/forezp/article/details/70341651
本文出自方志朋的博客
简介
spring boot 它的设计目的就是为例简化开发,开启了各种自动装配,你不想写各种配置文件,引入相关的依赖就能迅速搭建起一个web工程。它采用的是建立生产就绪的应用程序观点,优先于配置的惯例。
可能你有很多理由不放弃SSM,SSH,但是当你一旦使用了springboot ,你会觉得一切变得简单了,配置变的简单了、编码变的简单了,部署变的简单了,感觉自己健步如飞,开发速度大大提高了。就好比,当你用了IDEA,你会觉得再也回不到Eclipse时代一样。另,本系列教程全部用的IDEA作为开发工具。
建构工程
你需要:
15分钟
jdk 1.8或以上
maven 3.0+
Idea
打开Idea-> new Project ->Spring Initializr ->填写group、artifact ->钩上web(开启web功能)->点下一步就行了。
工程目录
创建完工程,工程的目录结构如下:
- src
-main
-java
-package
-SpringbootApplication
-resouces
- statics
- templates
- application.yml
-test
- pom
pom文件为基本的依赖管理文件
resouces 资源文件
statics 静态资源
templates 模板资源
application.yml 配置文件
SpringbootApplication程序的入口。
pom.xml的依赖:
<?xml version="1.0" encoding="UTF-8"?>
<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.forezp</groupId>
<artifactId>springboot-first-application</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot-first-application</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
其中spring-boot-starter-web不仅包含spring-boot-starter,还自动开启了web功能。
功能演示
说了这么多,你可能还体会不到,举个栗子,比如你引入了Thymeleaf的依赖,spring boot 就会自动帮你引入SpringTemplateEngine,当你引入了自己的SpringTemplateEngine,spring boot就不会帮你引入。它让你专注于你的自己的业务开发,而不是各种配置。
再举个栗子,建个controller:
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
public class HelloController {
@RequestMapping("/")
public String index() {
return "Greetings from Spring Boot!";
}
}
启动SpringbootFirstApplication的main方法,打开浏览器localhost:8080,浏览器显示:
Greetings from Spring Boot!
神奇之处:
你没有做任何的web.xml配置。
你没有做任何的sping mvc的配置; springboot为你做了。
你没有配置tomcat ;springboot内嵌tomcat.
启动springboot 方式
cd到项目主目录:
mvn clean
mvn package 编译项目的jar
1
2
mvn spring-boot: run 启动
cd 到target目录,java -jar 项目.jar
来看看springboot在启动的时候为我们注入了哪些bean
在程序入口加入:
@SpringBootApplication
public class SpringbootFirstApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootFirstApplication.class, args);
}
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
return args -> {
System.out.println("Let's inspect the beans provided by Spring Boot:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
};
}
}
程序输出:
Let’s inspect the beans provided by Spring Boot:
basicErrorController
beanNameHandlerMapping
beanNameViewResolver
characterEncodingFilter
commandLineRunner
conventionErrorViewResolver
defaultServletHandlerMapping
defaultViewResolver
dispatcherServlet
dispatcherServletRegistration
duplicateServerPropertiesDetector
embeddedServletContainerCustomizerBeanPostProcessor
error
errorAttributes
errorPageCustomizer
errorPageRegistrarBeanPostProcessor
….
….
在程序启动的时候,springboot自动诸如注入了40-50个bean.
单元测试
通过@RunWith() @SpringBootTest开启注解:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class HelloControllerIT {
@LocalServerPort
private int port;
private URL base;
@Autowired
private TestRestTemplate template;
@Before
public void setUp() throws Exception {
this.base = new URL("http://localhost:" + port + "/");
}
@Test
public void getHello() throws Exception {
ResponseEntity<String> response = template.getForEntity(base.toString(),
String.class);
assertThat(response.getBody(), equalTo("Greetings from Spring Boot!"));
}
}
运行它会先开启sprigboot工程,然后再测试,测试通过 ^.^
相关推荐
SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程 配置篇 SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解 数据库篇 SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql ...
欢迎关注:入门篇配置篇数据库篇构架文档篇SpringBoot非官方教程 | 第十篇: 用spring Restdocs创建API文档 SpringBoot非官方教程 | 第十一篇:springboot集成swagger2,构建优雅的Restful APISpringBoot非官方教程 ...
在快速上手方面,SpringBoot支持多种非命令行方式构建项目,例如在IntelliJ IDEA和Eclipse中都有便捷的方式去创建SpringBoot项目。对于初学者而言,甚至可以通过官方网站提供的在线工具快速生成项目结构,然后直接...
- **社区论坛**:加入Spring Boot的社区论坛,如Stack Overflow,可以获得来自其他开发者的第一手经验和技术支持。 通过以上介绍,相信你已经对Spring Boot 2有了较为全面的了解。无论是初学者还是有一定经验的...
开发第一个 Spring Boot 应用 - **创建 POM 文件**:详细介绍了如何创建项目的 POM 文件,包括添加必要的依赖项。 - **添加类路径依赖**:列举了常见的类路径依赖项,并解释了它们的作用。 - **编写代码** - 使用 ...
- **创建第一个 Spring Boot 应用**: - **创建 POM 文件**:定义项目的依赖关系。 - **添加 classpath 依赖**:通过 Maven 或 Gradle 添加必要的依赖库。 - **编写代码**: - 使用 `@RestController` 和 `@...
SpringBoot是Spring框架的一种简化开发方式,它集成了大量常用的第三方库配置,如JPA、MVC、Data、Security等,使得开发者可以快速构建稳定、生产级别的应用。在这个"springboot demo"中,我们可以深入学习...
4. **开发你的第一个 Spring Boot 应用**: - **创建 POM**:在项目根目录下创建 `pom.xml` 文件。 - **添加 classpath 依赖**:向 POM 文件中添加必要的依赖。 - **编写代码**: - **@RestController 和 @...
在“每特教育蚂蚁课堂余老师原创制作SpringBoot教学文档.docx”中,你可能会学习到如何创建第一个SpringBoot应用,理解自动配置的工作原理,以及如何编写Controller、Service、Repository等核心组件。此外,文档可能...
总的来说,通过Spring Boot、Elasticsearch和Kibana的组合,我们可以构建一个高效的非结构化数据全文检索系统,覆盖多种文件格式,满足复杂的信息检索需求。这个系统的应用范围广泛,包括但不限于文档管理、知识图谱...
1. **第一种方式**:通过IDEA或Eclipse等集成开发环境的Spring Initializr插件创建Spring Boot项目。 2. **第二种方式**:访问Spring官方网站提供的Spring Initializr在线工具,选择项目模板和依赖后生成pom.xml文件...
SpringBoot与SpringCloud的区别在于,SpringBoot是快速开发Spring应用的基础框架,而SpringCloud则是一个完整的微服务框架,它依赖于SpringBoot来构建分布式系统。 SpringBoot 2.x相比1.x的新特性包括: 1. 配置...
“文档”可能是官方文档或者其他第三方教程,这些文档会详细阐述Spring Boot的各个模块和最佳实践,是学习过程中的重要参考资料。 总的来说,Spring Boot简化了Java Web应用的开发,使得开发者可以更专注于业务逻辑...
SpringBoot2.x是Spring Boot框架的一个重要版本更新,它在2018年3月发布,带来了许多增强和新功能。这个版本不仅为小型企业和新项目提供了更好的开发体验,而且由于核心注解配置的兼容性,使得从1.x版本平滑过渡到2....
- **开发第一个Spring Boot应用**: - **创建POM**:指导如何创建项目的pom.xml文件。 - **添加classpath依赖**:列出必须包含的依赖项。 - **编写代码**: - 使用`@RestController`和`@RequestMapping`注解来...
- **Spring Boot官方文档**:提供了详细的Spring Boot使用指南和API文档,是学习Spring Boot的第一手资料。 - **Spring Initializr**:这是一个在线工具,可以帮助开发者快速生成Spring Boot项目的骨架代码。 - **...
该项目是一个使用SpringBoot后端框架和Vue前端框架构建的联网五子棋游戏,结合WebSocket实现实时的网络通信,提供玩家间即时对弈的功能。以下是该项目涉及的主要知识点: 1. **SpringBoot**: SpringBoot是Spring...
本项目是一个基于SpringBoot框架构建的网上书店系统,它集成了常见的电商功能,包括用户管理、商品展示、购物车、订单处理等模块,旨在为开发者提供一个完整的、可快速上手的实战示例。通过学习和实践该项目,可以...