我是靠谱客的博主 漂亮烤鸡,最近开发中收集的这篇文章主要介绍认识Spring Boot应用程序(一)概述开发Spring Boot应用程序构建代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

  • 概述
    • 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-webWeb开发支持, 默认使用Tomcat
spring-boot-starter-aopAOP 开发支持,使用AspectJ
spring-boot- starter-jdbcSpring JDBC
spring-boot-starter-data-jpa JPA方式访问数据库,使用Hibernate 作为JPA 实现
spring-boot-starter-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-webserviceswebservice 支持
spring-boot-starter-websocketwebsocket 支持
spring-boot-starter-jerseyREST 应用和Jersey 支持
spring-boot” starter-freemarkerFreemaker 支持

系统要求

名称版本
Tomcat8+
Maven3.2+
JDK1.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 注释,

  1. 如果您不想使用@SpringBootApplication,它隐含地会搜索该目录的子包,相当于加了@ComponentScan扫描。
  2. @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应用程序构建代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部