Spring Boot 揭秘与实战(一) 快速上手
文章目录
计划开个专栏,讲解《Spring Boot 揭秘与实战》系列。
简介
什么是Spring Boot
Spring Boot其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。Spring Boot 的目标不在于为已解决的问题域提供新的解决方案,而是为平台带来另一种开发体验,从而简化对这些已有技术的使用。Spring Boot 充分利用了 JavaConfig 的配置模式以及“约定优于配置”的理念,能够极大的简化基于 Spring MVC 的 Web 应用和 REST 服务开发。对于已经熟悉 Spring 生态系统的开发人员来说,Spring Boot 是一个很理想的选择。
为什么选择Spring Boot
- Spring Boot 使编码变简单
- Spring Boot 使配置变简单
- Spring Boot 使部署变简单
- Spring Boot 使监控变简单
相关知识
Spring Boot的spring-boot-starter
Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的。下面列举一些常用的模块。
- spring-boot-starter-logging :使用 Spring Boot 默认的日志框架 Logback。
- spring-boot-starter-log4j :添加 Log4j 的支持。
- spring-boot-starter-web :支持 Web 应用开发,包含 Tomcat 和 spring-mvc。
- spring-boot-starter-tomcat :使用 Spring Boot 默认的 Tomcat 作为应用服务器。
- spring-boot-starter-jetty :使用 Jetty 而不是默认的 Tomcat 作为应用服务器。
- spring-boot-starter-test :包含常用的测试所需的依赖,如 JUnit、Hamcrest、Mockito 和 spring-test 等。
- spring-boot-starter-aop :包含 spring-aop 和 AspectJ 来支持面向切面编程(AOP)。
- spring-boot-starter-security :包含 spring-security。
- spring-boot-starter-jdbc :支持使用 JDBC 访问数据库。
- spring-boot-starter-redis :支持使用 Redis。
- spring-boot-starter-data-mongodb :包含 spring-data-mongodb 来支持 MongoDB。
- spring-boot-starter-data-jpa :包含 spring-data-jpa、spring-orm 和 Hibernate 来支持 JPA。
- spring-boot-starter-amqp :通过 spring-rabbit 支持 AMQP。
- spring-boot-starter-actuator : 添加适用于生产环境的功能,如性能指标和监测等功能。
Java Config 自动配置
Spring Boot 推荐采用基于 Java Config 的配置方式,而不是传统的 XML。例如,@Configuration、@Bean、@EnableAutoConfiguration、@CompomentScan、@PropertySource、@Repository、@Service、@RestController等。
快速上手
Spring Boot初体验
通过 Spring Boot,创建新的 Spring 应用变得非常容易,只需要简单的几个步骤就可以创建出一个应用。
首先,我们先创建一个 POM 文件。
- <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>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>1.3.3.RELEASE</version>
- </parent>
- <groupId>com.lianggzone.demo</groupId>
- <artifactId>springboot-action</artifactId>
- <version>0.1</version>
- <packaging>war</packaging>
- <name>springboot-action</name>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter</artifactId>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
- </project>
然后,第二步,创建 Java 代码。
- @SpringBootApplication
- public class ApplicationDemo {
- public static void main(String[] args) throws Exception {
- System.out.println(" springApplication run !");
- SpringApplication.run(ApplicationDemo.class, args);
- }
- }
快速搭建web工程
通过 Spring Boot,创建 web 工程也非常简单。
修改 POM 文件,添加依赖。
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
创建Java代码
- @RestController
- @EnableAutoConfiguration
- public class RestfulApiWebDemo {
- @RequestMapping("/")
- String home() {
- return "Hello World!";
- }
- public static void main(String[] args) throws Exception {
- SpringApplication.run(RestfulApiWebDemo.class, args);
- }
- }
直接运行 Java 类,或者可以通过“mvn spring-boot:run”在命令行启动该应用。会启动一个内嵌的 Tomcat 服务器运行在 8080 端口。访问http://localhost:8080可以看到页面上显示“Hello World!”。
此外,在 POM 文件添加插件。
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
在添加了插件后,当运行“mvn package”进行打包时,会打包成一个可以直接运行的 JAR 文件,使用“java -jar”命令就可以直接运行。
源代码
相关示例完整代码: springboot-action
(完)

- 版权声明:本文由 梁桂钊 发表于 梁桂钊的博客
- 转载声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证),非商业转载请注明作者及出处,商业转载请联系作者本人。
- 文章标题:Spring Boot 揭秘与实战(二) 数据存储篇 - 数据访问与多数据源配置
- 文章链接:http://blog.720ui.com/2016/springboot_02_data_datasource/
Spring Boot 揭秘与实战(一) 快速上手的更多相关文章
- Spring Boot 揭秘与实战(三) 日志框架篇 - 如何快速集成日志系统
文章目录 1. 默认的日志框架 logback2. 常用的日志框架 log4j 1.1. 日志级别 1.2. 日志文件 3. 源代码 Java 有很多日志系统,例如,Java Util Logging ...
- Spring Boot 揭秘与实战(二) 数据缓存篇 - 快速入门
文章目录 1. 声明式缓存 2. Spring Boot默认集成CacheManager 3. 默认的 ConcurrenMapCacheManager 4. 实战演练5. 扩展阅读 4.1. Mav ...
- Spring Boot 揭秘与实战(五) 服务器篇 - 内嵌的服务器 Tomcat剖析
文章目录 1. 内嵌的 Tomcat,一个Jar包运行 2. 如何定制内嵌 Tomcat3. War 包部署的使用细节 2.1. 设置内嵌Tomcat的端口 2.2. 设置内嵌Tomcat的最大线程数 ...
- Spring Boot 揭秘与实战(九) 应用监控篇 - HTTP 应用监控
文章目录 1. 快速开始 2. 监控和管理端点3. 定制端点 2.1. health 应用健康指标 2.2. info 查看应用信息 2.3. metrics 应用基本指标 2.4. trace 基本 ...
- Spring Boot 揭秘与实战(二) 数据缓存篇 - Redis Cache
文章目录 1. Redis Cache 集成 2. 源代码 本文,讲解 Spring Boot 如何集成 Redis Cache,实现缓存. 在阅读「Spring Boot 揭秘与实战(二) 数据缓存 ...
- Spring Boot 揭秘与实战(二) 数据缓存篇 - Guava Cache
文章目录 1. Guava Cache 集成 2. 个性化配置 3. 源代码 本文,讲解 Spring Boot 如何集成 Guava Cache,实现缓存. 在阅读「Spring Boot 揭秘与实 ...
- Spring Boot 揭秘与实战(二) 数据缓存篇 - EhCache
文章目录 1. EhCache 集成 2. 源代码 本文,讲解 Spring Boot 如何集成 EhCache,实现缓存. 在阅读「Spring Boot 揭秘与实战(二) 数据缓存篇 - 快速入门 ...
- Spring Boot 揭秘与实战 附录 - Spring Boot 公共配置
Spring Boot 公共配置,配置 application.properties/application.yml 文件中. 摘自:http://docs.spring.io/spring-boot ...
- Spring Boot 揭秘与实战 自己实现一个简单的自动配置模块
文章目录 1. 实战的开端 – Maven搭建 2. 参数的配置 - 属性参数类 3. 真的很简单 - 简单的服务类 4. 自动配置的核心 - 自动配置类 5. spring.factories 不要 ...
随机推荐
- NIO高性能框架-Netty
一:Netty是什么 ? Netty是目前最流行的由JBOSS提供的一个Java开源框架NIO框架,Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客 ...
- 一些input用法
//设定选中范围someInput.setSelectionRange(0, 2); //只读<input type="text" value="2" r ...
- oracle 日常设置
查看缓冲区命令:list 执行save 1.sql 可以吧缓冲区的命令保存下来. 执行 @1.sql可以执行保存下来的内容: show feedback 显示反馈信息,最后一行. show ...
- 《高性能SQL调优精要与案例解析》一书谈主流关系库SQL调优(SQL TUNING或SQL优化)核心机制之——索引(index)
继<高性能SQL调优精要与案例解析>一书谈SQL调优(SQL TUNING或SQL优化),我们今天就谈谈各主流关系库中,占据SQL调优技术和工作半壁江山的.最重要的核心机制之一——索引(i ...
- windows 下的常用工具
网址:http://cmder.net/ 如果vim乱码 命令行输入 set LC_ALL=zh_CN.UTF8 添加cmder到鼠标右键 c://安装目录/Cmder.exe /REGISTE ...
- 【转】在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动
在一些比较重要的业务系统中,通常会要求系统跟踪数据记录的变动情况.系统要记录什么时间,什么人,对那些信息进行了变动. 比较简单的实现方式是在每个表中加入两个字段CreatedBy和CreatedAt, ...
- JS--label语句的使用
使用label语句可以在代码中添加标签,以便将来使用. 一般与for循环一起使用 如: var num = 0; outermost: for(var i=0;i<10;i++){ for(va ...
- matlab 调试日志
debug=; diary off if debug delete('log.txt'); !del log.txt diary('log.txt'); diary ON end diary OFF
- mybatis-ResultMappingResolver类信息
ResultMappingResolver类介绍 一个ResultMap元素对应一个ResultMap对象 resultMap元素中的idArg/result/association/collecti ...
- day9-复习学习python实例
学习实例代码 #求1到100的和print ("##################1到100求和#################")def sum(a,b): s = 0 fo ...