博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 入门
阅读量:5878 次
发布时间:2019-06-19

本文共 4898 字,大约阅读时间需要 16 分钟。

 Boot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验,让开发也能够实现Ruby on Rails那样的生产效率

为Spring生态系统提供了一种固定的、约定优于配置风格的框架。

Spring Boot具有如下特性:

  • 为基于Spring的开发提供更快的入门体验
  • 开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求。
  • 提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。
  • Spring Boot并不是不对Spring功能上的增强,而是提供了一种快速使用Spring的方式

Spring Boot 系列

由于我博客Spring Boot 系列文章还不够多,所以暂时不打算创建专栏,如果再多几篇我就建专栏。

本文根据官方文档深入讲解一段代码

简单例子

Spring Boot建议使用Maven或Gradle,本文以Maven为例。

首先创建一个一般的Maven项目,有一个pom.xml和基本的src/main/java结构。

pom.xml中写上如下内容:

4.0.0
com.github.abel533
spring-boot
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-parent
1.3.0.RELEASE
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-maven-plugin
org.springframework
springloaded
1.2.5.RELEASE

首先是增加了<parent>

增加父pom比较简单,而且spring-boot-starter-parent包含了大量配置好的依赖管理,在自己项目添加这些依赖的时候不需要写<version>版本号

使用父pom虽然简单,但是有些情况我们已经有父pom,不能直接增加<parent>时,可以通过如下方式:

org.springframework.boot
spring-boot-dependencies
1.2.3.RELEASE
pom
import

java.version属性

上面pom.xml虽然没有出现这个属性,这里要特别提醒。

Spring默认使用jdk1.6,如果你想使用jdk1.8,你需要在pom.xml的属性里面添加java.version,如下:

1.8

添加spring-boot-starter-web依赖

Spring通过添加spring-boot-starter-*这样的依赖就能支持具体的某个功能

我们这个示例最终是要实现web功能,所以添加的是这个依赖。

更完整的功能列表可以查看:

添加spring-boot-maven-plugin插件

该插件支持多种功能,常用的有两种,第一种是打包项目为可执行的jar包

在项目根目录下执行mvn package将会生成一个可执行的jar包,jar包中包含了所有依赖的jar包,只需要这一个jar包就可以运行程序,使用起来很方便。该命令执行后还会保留一个XXX.jar.original的jar包,包含了项目中单独的部分。

生成这个可执行的jar包后,在命令行执行java -jar xxxx.jar即可启动项目。

另外一个命令就是mvn spring-boot:run,可以直接使用tomcat(默认)启动项目。

在我们开发过程中,我们需要经常修改,为了避免重复启动项目,我们可以启用热部署。

Spring-Loaded项目提供了强大的热部署功能,添加/删除/修改 方法/字段/接口/枚举 等代码的时候都可以热部署,速度很快,很方便。

想在Spring Boot中使用该功能非常简单,就是在spring-boot-maven-plugin插件下面添加依赖:

org.springframework
springloaded
1.2.5.RELEASE

添加以后,通过mvn spring-boot:run启动就支持热部署了。

注意:使用热部署的时候,需要IDE编译类后才能生效,你可以打开自动编译功能,这样在你保存修改的时候,类就自动重新加载了。

创建一个应用类

我们创建一个Application类:

@RestController@EnableAutoConfigurationpublic class Application { @RequestMapping("/") String home() { return "Hello World!"; } @RequestMapping("/now") String hehe() { return "现在时间:" + (new Date()).toLocaleString(); } public static void main(String[] args) { SpringApplication.run(Example.class, args); } }

注意

Spring Boot建议将我们main方法所在的这个主要的配置类配置在根包名下。

类似如下结构:

com +- example     +- myproject         +- Application.java         |         +- domain         |   +- Customer.java         |   +- CustomerRepository.java         |         +- service         | +- CustomerService.java | +- web +- CustomerController.java

Application.java中有main方法。

因为默认和包有关的注解,默认包名都是当前类所在的包,例如@ComponentScan, @EntityScan, @SpringBootApplication注解。

@RestController

因为我们例子是写一个web应用,因此写的这个注解,这个注解相当于同时添加@Controller@ResponseBody注解。

@EnableAutoConfiguration

Spring Boot建议只有一个带有该注解的类。

@EnableAutoConfiguration作用:Spring Boot会自动根据你jar包的依赖来自动配置项目。例如当你项目下面有HSQLDB的依赖时,Spring Boot会创建默认的内存的数据源DataSource,如果你自己创建了DataSource,Spring Boot就不会创建默认的DataSource

如果你不想让Spring Boot自动创建,你可以配置注解的exclude属性,例如:

@Configuration@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})public class MyConfiguration { }

@SpringBootApplication

由于大量项目都会在主要的配置类上添加@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解。

因此Spring Boot提供了@SpringBootApplication注解,该注解可以替代上面三个注解(使用Spring注解继承实现)。

home等方法

@RequestMapping("/")String home() {    return "Hello World!";}@RequestMapping("/now") String hehe() { return "现在时间:" + (new Date()).toLocaleString(); }

这些方法都添加了@RequestMapping("xxx"),这个注解起到路由的作用。

启动项目SpringApplication.run

启动Spring Boot项目最简单的方法就是执行下面的方法:

SpringApplication.run(Application.class, args);

该方法返回一个ApplicationContext对象,使用注解的时候返回的具体类型是AnnotationConfigApplicationContextAnnotationConfigEmbeddedWebApplicationContext,当支持web的时候是第二个。

除了上面这种方法外,还可以用下面的方法:

SpringApplication application = new SpringApplication(Application.class);application.run(args);

SpringApplication包含了一些其他可以配置的方法,如果你想做一些配置,可以用这种方式。

除了上面这种直接的方法外,还可以使用SpringApplicationBuilder

new SpringApplicationBuilder()        .showBanner(false)        .sources(Application.class)        .run(args);

当使用SpringMVC的时候由于需要使用子容器,就需要用到SpringApplicationBuilder,该类有一个child(xxx...)方法可以添加子容器。

运行

在IDE中直接直接执行main方法,然后访问http://localhost:8080即可。

另外还可以用上面提到的mvn,可以打包为可执行jar包,然后执行java -jar xxx.jar

或者执行mvn spring-boot:run运行项目。

 

http://blog.csdn.net/isea533/article/details/50278205

 

你可能感兴趣的文章
前端开发自动化单元测试趋势
查看>>
Python中的函数与方法 以及Bound Method和Unbound Method
查看>>
虚拟机VS容器 安全比拼谁更胜一筹?
查看>>
Rackspace: IT与业务的融合是一门艺术
查看>>
雅虎高管称移动2.0将于今年年底出现
查看>>
八一八聊天机器人的那些事儿
查看>>
能理解聊天记录的微信机器人 (四)
查看>>
中软国际抢占医疗大数据风口
查看>>
RDS SQL Server - 专题分享 - 巧用执行计划缓存之执行计划编译
查看>>
《C++语言入门经典》一2.6 表达式
查看>>
个人信息泄露 一条短信盗走积蓄
查看>>
《MonoTouch开发实践指南》一1.1 搭建开发环境
查看>>
如何做好ERP项目经理?
查看>>
Alphabet财报让华尔街兴奋:股价还会涨 买买买
查看>>
数据专家必知必会的7款Python工具
查看>>
关于数据分析,管理者常犯的4个错误
查看>>
A Neural Probabilistic Language Model
查看>>
如何使用网络视频服务器的权限管理
查看>>
WannaCry警示:学会检测和减轻云端恶意内容
查看>>
光纤将在5G发展中发挥关键作用
查看>>