spring boot的初期目标是:
- 提供一个从根本上快速简洁的Spring开发体验
- 提供诸多非必须的但是在大型的项目中很常见的功能(比如:整合的服务器,安全等)
- 无须生成代码和xml配置
基于此,spring boot在项目中使用的优点显而易见:没有各种烦人的xml配置。 spring boot能让你更专注业务代码。
项目地址:https://github.com/yhan219/spring-boot-demo
新建spring boot项目
spring boot项目新建非常简单,可以到官网上新建后下载。如果你使用idea,new->project->Spring Initializr。如果你使用eclipse,可安装spring插件后新建。 如果你只有maven,不想安装插件,不想下载idea,那也很简单。新建一个maven项目。pom示例如下:
<?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.yhan</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.BUILD-SNAPSHOT</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-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>
非常推荐使用gradle管理和构建项目。不过这里使用大家熟悉的maven。推荐打成jar包,而不是war。
spring boot无需特定的代码结构。但是推荐项目目录结构如下:
│ .gitignore
│ pom.xml
│ README.md
├─src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │
│ │ └─resources
│ │ │ application.yml
│ │ │
│ │ ├─static
│ │ └─templates
│ └─test
│ └─java
│ └─com
└─target
spring mvc
spring boot提供了很简单的整合spring mvc的方法,你仅仅只需要添加如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
添加好依赖后,spring boot已经为你配置好了常用的配置,比如tomcat。
编码
编码过程很简单,新建入口类:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
不用感到奇怪,spring boot就是这样,直接运行main方法就能启动应用,无需配置tomcat(因为tomcat已经内置了)。
解释一下@SpringBootApplication注解,这个注解告诉spring boot怎么猜测你想如何配置spring,主要根据你添加的jar包。 因为 spring-boot-starter-web添加有tomcat和SpringMVC,所以SpringBoot会认为你在开发一个web项目,并以此进行配置。
最后的部分是应用的main方法。这是标准的java程序入口方法。我们的主方法委托给SpringBoot的SpringApplication类的run方法。 SpringApplication会启动我们的程序,启动自动配置的tomcat。我们需要把DemoApplication.class作为参数传递给SpringApplication。
写一个简单的Controller。如下:
@RestController
public class UserController {
@GetMapping("/user/{name}")
public String getUsername(@PathVariable String name) {
return name;
}
}
运行main方法,在浏览器上输入 localhost:8080/user/张三 即可看到相关输出。
spring boot devtools
顾名思义,这个包是用来为开发者服务的一个模块。其重要的功能就是热部署,类似jrebel插件。依赖如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
常用的配置:
一些特定的资源改变无需触发重启,比如js,此时只需配置spring.devtools.restart.exclude属性。 比如你想排除/static和/public(spring boot已经默认排除了这两个目录,这里只是示例)下的资源,设置如下: application.properties:
spring.devtools.restart.exclude=static/**,public/**
或者使用yml配置:
spring:
devtools:
restart:
exclude: static/**,public/**
由于yml更简洁,推荐使用yml配置方式。
你可能需要SpringBoot在你修改非classpath路径下的文件时也触发重启。这时你需要修改spring.devtools.restart.additional-paths来添加额外的路径进行监测。 另外还有运行远程程序及远程更新、远程调试等。
actuator
actuator是spring boot四大神器(auto-configuration、starters、cli、actuator)之一。 actuator是spring boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。 简单说就是应用健康监控。 添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
主要暴露的功能:
GET | /autoconfig | 查看自动配置的使用情况 | true |
GET | /configprops | 查看配置属性,包括默认配置 | true |
GET | /beans | 查看bean及其关系列表 | true |
GET | /dump | 打印线程栈 | true |
GET | /env | 查看所有环境变量 | true |
GET | /env/{name} | 查看具体变量值 | true |
GET | /health | 查看应用健康指标 | false |
GET | /info | 查看应用信息 | false |
GET | /mappings | 查看所有url映射 | true |
GET | /metrics | 查看应用基本指标 | true |
GET | /metrics/{name} | 查看具体指标 | true |
POST | /shutdown | 关闭应用 | true |
GET | /trace | 查看基本追踪信息 |
例如,访问 http://localhost:8080/health 返回:
{
"status": "UP"
}
ps:等添加了数据源后再回来试试这些命令。
mybatis
配置
spring boot整合mybatis非常简单。同样的,只要添加如下依赖:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
在这之前,你需要添加数据库驱动和连接池。依赖如下:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.28</version>
</dependency>
数据源配置如下:
spring:
datasource:
url: jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
username: root
password: 6789@jkl
好了,配置好了,如果你不会mybatis,请按ctrl+w。
编码
@Mapper
public interface StudentRepository {
@Insert("insert into student(id,name,sex) values(#{id},#{name},#{sex})")
int insertStudent(Student student);
@Select("select id,name from student where id=#{id}")
Student selectStudent(@Param("id") String id);
}
如果你想使用mybatis官方推荐的xml,这里也很简单。
application.yml中添加:
mybatis:
typeAliasesPackage: com.yhan.demo.domain
mapper-locations: classpath:mapper/*.xml
把你的xml写到resource/mapper目录下试试看吧。
启动事物
仅仅只需要在入口类(DemoApplication.java)添加注解: @EnableTransactionManagement
相关推荐
### Spring Boot 入门教程详解 #### Spring Boot 框架概述 Spring Boot 是由 Pivotal 团队提供的全新框架,旨在简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式(习惯优于配置)来简化整个 ...
本课程从SpringBoot的最基础的安装、配置开始到SpringBoot的日志管理、Web业务开发、数据存储、数据缓存,安全控制及相关企业级应用,全程案例贯穿,案例每一步的都会讲解实现思路,全程手敲代码实现。...
### Spring Boot 入门详解 #### 一、Spring 发展历程与 Java 配置方式 Spring 是一个开源框架,最初由 Rod Johnson 创建,目的是为了简化企业级应用的开发。随着时间的发展,Spring 框架经历了多个重要的阶段: #...
**Spring Boot 入门与实战** Spring Boot 是一个由 Pivotal 团队开发的 Java 框架,旨在简化创建独立的、生产级别的基于 Spring 的应用。它通过提供默认配置来消除大量的样板代码,使得开发者可以更快地构建应用...
Spring Boot 是一个旨在简化Spring应用程序初始设置和常规配置的框架,它由Pivotal团队于2013年初开始研发,目前稳定版本为2.0.3 RELEASE。Spring Boot并不是要取代Spring框架,而是作为其增强工具,为Spring开发者...
本篇文章将深入探讨Spring Boot入门项目的构建过程,以及它如何与微服务和分布式系统相结合。 **1. Spring Boot基础知识** Spring Boot 的核心理念是“约定优于配置”。它通过内置的Tomcat服务器、自动配置的Spring...
总的来说,《Spring Boot实战》这本书全面覆盖了Spring Boot从入门到进阶的各项知识点,无论是初学者还是有一定经验的开发者,都能从中受益。通过学习,读者将能够熟练掌握Spring Boot的使用,提升开发效率,并有...
这个“Spring Boot系列教程入门”将引导你深入了解如何利用Spring Boot快速构建高效、可维护的Web应用。 首先,我们从核心概念开始。Spring Boot的核心优势在于它的“约定优于配置”原则,这意味着它默认设置了一...
SpringBoot是Spring框架的一个模块,旨在简化Spring应用的初始搭建以及开发过程。它集成了大量常用的第三方...通过这个入门实践,开发者可以快速了解Spring Boot的工作方式,并为进一步的学习和复杂应用开发打下基础。
**Spring Boot 入门程序详解** Spring Boot 是一个由 Pivotal 团队开发的 Java 框架,它的设计目标是简化 Spring 应用的初始搭建以及开发过程。Spring Boot 通过提供“开箱即用”的特性,使得开发者能够快速创建...
书中除了可能包含基础入门知识外,也很可能涵盖了对于Spring Boot高级特性的讨论,比如微服务架构和响应式编程的实践,这些内容在当下Java开发领域中非常流行且具有实际应用价值。 标签“spring boot”、“java”、...
本文将深入探讨Spring Boot的基础知识,以及如何从入门到精通。 首先,让我们从Spring Boot的核心概念开始。Spring Boot基于Spring Framework构建,它通过自动配置和starter pom来简化Spring应用的搭建。自动配置...
Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化基于 Spring Framework 的应用程序的初始设置和开发过程。它的核心理念是“约定优于配置”,这意味着 Spring Boot 在默认情况下已经预设了很多常用的配置,...
### 四、myspringboot和myspringboot-maven子项目 这两个子项目可能分别代表了一个基于Maven构建的Spring Boot应用实例和一个包含Maven配置的示例。在`myspringboot`项目中,你可以看到一个完整的Spring Boot应用...
【Spring Boot实战】由丁雪丰翻译,详细介绍了如何利用Spring Boot进行高效且轻松的Java应用程序开发。Spring Boot是Spring框架家族的一员,旨在简化开发流程,减少代码量,同时提供强大的生产系统构建能力。它引入...
- **起步依赖**:Spring Boot 通过“起步依赖”(Starter POMs)提供了一种简单的方式来添加功能模块,如 Web、Data JPA、Security 等。 - **内嵌服务器**:Spring Boot 支持内嵌 Tomcat、Jetty 或 Undertow 服务器...
Spring Boot 2.x基础教程:快速入门 Spring Boot 2.x基础教程:工程结构推荐 配置详解 Spring Boot 2.x基础教程:配置文件详解 Spring Boot 2.x基础教程:2.4版本前后的多环境配置变化 Spring Boot 2.x基础教程:2.4...
### Spring Boot 入门开发知识点概述 #### 一、Spring Boot 基本介绍 - **微服务架构**:在现代软件开发中,微服务架构是一种流行的设计模式,它将单个应用程序分解为一组小型、独立的服务,每个服务执行特定的...
Spring Boot 是一个由 Pivotal 团队开发的框架,其设计目的是简化...通过阅读《Springboot入门到精通【完整版】》,你可以系统地学习这个框架,通过实例和实践练习加深理解,逐步成为一名精通Spring Boot的开发者。
在Spring Boot中,"快速入门"通常指的是新手或初学者对Spring Boot的基本认识和基础使用,能够快速构建和部署一个Spring Boot应用程序。 ### Spring Boot概述 #### 1.1. 什么是Spring Boot Spring Boot是Spring...