概述
目录
- 概述
- springboot jar
- 系统要求
- servlet容器
- 开发Spring Boot应用程序
- 创建maven项目
- 初始化POM
- 编写代码
- 使用热部署
- 可执行的Jar
- 构建代码
- 自动配置
- 禁用特定的自动配置类
- 配置类
- 导入java配置类
- 导入XML配置
概述
相比于Spring, Spring Boot 具有以下优点:
- 实现约定大于配置,是一个低配置的应用系统框架。不像Spring 那样“地狱般的配置
体验”, Spring Boot 不需要配置或者极少配置,就能使用Spring 大量的功能。 - 提供了内置的Tomcat 或者Jetty 容器。
- 通过依赖的jar 包管理、自动装配技术,容易支持与其他技术体系、工具集成。
- 支持热加载,开发体验好。也支持Spring Boot 系统监控,方便了解系统运行状况。
springboot jar
名称 | 作用 |
---|---|
spring -boot- starter-web | Web开发支持, 默认使用Tomcat |
spring-boot-starter-aop | AOP 开发支持,使用AspectJ |
spring-boot- starter-jdbc | Spring JDBC |
spring-boot-starter-data-jpa JPA | 方式访问数据库,使用Hibernate 作为JPA 实现 |
spring-boot-st | arter-data-elasticsearch |
spring-boot-starter-data-red is | 集成Red is ,使用JRedis ,默认连接localhost:6379 |
spring-boot-starter-cache | 缓存, 支持多种缓存方式,如本地的、Redis 、Ehcache 等 |
spring-boot-devtools | 应用程序快速重启的工具,提升开发体验 |
spring-boot-starter-data-mongodb | 集成MongoDB ,默认访问mongo db : // localhosνtest |
spring-boot-starter-data-neo4j | 集成neo4j , 默认访问localhost:7474 |
spring-boot-starter-data-gemfire 集成分布式缓存 | |
spring-boot-starter-data-soIr | 基于Apache lucene 的搜索平台,默认访问http: //localhost:8983/solr |
spring-boot-s tarter-data-cassandra | 集成Cassandra,默认访问localhost:7474 |
spring-boot-sta此er-data-ldap | 集成ldap |
spring-boot-starter-activemq | 消息集成ActiveMQ 支持 |
spring-boot-starter-amqp | 消息集成AMQP 协议支持,如支持RabbitMQ |
spring-boot-starter-jta-atomikos | 分布式事务支持,使用atomikos |
spring-boot-starter-jta-bitronix | 一个开源的分布式事务支持 |
spring-boot-starter-test | 包含JUnit 、Spring Test、Hamcrest 、Mockito 等测试工具 |
spring-boot-starter-webservices | webservice 支持 |
spring-boot-starter-websocket | websocket 支持 |
spring-boot-starter-jersey | REST 应用和Jersey 支持 |
spring-boot” starter-freemarker | Freemaker 支持 |
系统要求
名称 | 版本 |
---|---|
Tomcat | 8+ |
Maven | 3.2+ |
JDK | 1.8+ |
servlet容器
开发Spring Boot应用程序
创建maven项目
初始化POM
1.打开pom.xm , 添加如下内容,使工程变成Spring Boot 应用:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.7.RELEASE</version>
</parent>
或者
<properties>
<spring.boot-version>2.1.3.RELEASE</spring.boot-version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2 因为我们搭建的是Web 应用,必须添加spring-boot-starter-web 依赖, 因此增加如下内容:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3 因为本文使用2.0.7.RELEASE版本,在以前spring boot已经把hibernate-validator
内置了,但是在2.0.7.RELEASE版本需要新增hibernate-validator配置,否则启动异常,如下:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.3.0.Final</version>
</dependency>
spring-boot-dependencies 默认会使用内置的Tomcat ,井支持Spring MVC 、阻STFul 服务。
做好上面的配置后,整个Maven 文件看起来是这个样子的:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.7.RELEASE</version>
</parent>
<groupId>com.gz</groupId>
<artifactId>spring-boot2-example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.3.0.Final</version>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
编写代码
@SpringBootApplication
public class ClientApplication {
public static void main(String[] args) {
SpringApplication.run(ClientApplication.class, args);
}
}
@RestController
public class HelloworldController {
@RequestMapping("/")
String home() {
return "Hello World!!";
}
}
如果您打开Web浏览器localhost:8080,您应该看到以下输出:Hello World!!
使用热部署
1 在上面的过程中, 修改类时必须再次重新运行应用, 对于开发者来说非常不方便。Spring Boot 提供了spring-boot-devtools , 它能在修改类或者配置文件的时候自动重新加载Spring Boot应用,需要打开porn 文件,添加如下依赖:
<dependency>
<groupid>org . springframework . boot</groupid>
<artifactid>spring-boot-devtools</artifactid>
<optional>true</optional>
</dependency>
2 然后重启应用,这时修改home方法,改成如下:
@RestController
public class HelloworldController {
@RequestMapping("/index")
String home() {
return "Hello World!!";
}
}
不需要重新在启动项目,直接访问http://localhost:8080/index,可以看到输出:Hello World!!
注:可能你增加热部署配置文件会报java.lang.IllegalStateException: Failed to read Class-Path attribute from manifest of jar file:/XXX
,解决方法就是删掉对应的jar然后maven update
可执行的Jar
1 要创建可执行jar,我们需要添加spring-boot-maven-plugin到我们的 pom.xml。为此,请在该dependencies部分下方插入以下行:
<build>
<plugins>
<plugin>
<groupId> org.springframework.boot </ groupId>
<artifactId> spring-boot-maven-plugin </ artifactId>
</ plugin>
</ plugins>
</ build>
2 保存pom.xml并从命令行运行mvn package,如下所示:
$ mvn package
3 查看target目录,会看到一个spring-boot2-example-0.0.1-SNAPSHOT,要运行该应用程序,请使用以下java -jar命令:
java -jar target/spring-boot2-example-0.0.1-SNAPSHOT.jar
访问http://localhost:8080/index,可以看到输出:Hello World!!
构建代码
自动配置
Spring Boot自动配置尝试根据您添加的jar依赖项自动配置Spring应用程序,需要在我们的主程序上增加@SpringBootApplication或@EnableAutoConfiguration 注释,
- 如果您不想使用@SpringBootApplication,它隐含地会搜索该目录的子包,相当于加了@ComponentScan扫描。
- @SpringBootApplication == @Configuration @EnableAutoConfiguration @ComponentScan
示例:
com
+
-
example
+
-
myapplication
+
-
Application.java
|
+
- 客户
| +
-
Customer.java
| +
-
CustomerController.java
| +
-
CustomerService.java
| +
-
CustomerRepository.java
|
+
- 订单
+
-
Order.java
+
-
OrderController.java
+
-
OrderService.java
+
-
OrderRepository.java
如果在Application.java中包含@SpringBootApplication注解,会扫描com.example-myapplication包下的所有类
禁用特定的自动配置类
如果不需要的特定自动配置类,则可以使用exclude属性@EnableAutoConfiguration禁用它们,如以下示例所示:
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}
如果类不在类路径上,则可以使用excludeName注释的属性并指定完全限定名称。最后,您还可以使用该spring.autoconfigure.exclude属性控制要排除的自动配置类列表 。
配置类
Spring Boot支持基于Java的配置。在该类上增加@Configuration注解,或者直接用传统的XML配置
导入java配置类
@Import注释可以用于导入额外的配置类。或者可以使用 @ComponentScan自动获取所有Spring组件,包括 @Configuration类。
导入XML配置
@ImportResource注释来加载XML配置文件
最后
以上就是漂亮烤鸡为你收集整理的认识Spring Boot应用程序(一)概述开发Spring Boot应用程序构建代码的全部内容,希望文章能够帮你解决认识Spring Boot应用程序(一)概述开发Spring Boot应用程序构建代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复