`
yhan219
  • 浏览: 11559 次
  • 来自: 成都
社区版块
存档分类
最新评论

spring boot简单入门

阅读更多

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>

主要暴露的功能:

HTTP方法 路径 描述 鉴权
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 框架概述 Spring Boot 是由 Pivotal 团队提供的全新框架,旨在简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式(习惯优于配置)来简化整个 ...

    Spring Boot从入门到实战-视频教程网盘链接提取码下载 .txt

    本课程从SpringBoot的最基础的安装、配置开始到SpringBoot的日志管理、Web业务开发、数据存储、数据缓存,安全控制及相关企业级应用,全程案例贯穿,案例每一步的都会讲解实现思路,全程手敲代码实现。...

    spring boot入门

    ### Spring Boot 入门详解 #### 一、Spring 发展历程与 Java 配置方式 Spring 是一个开源框架,最初由 Rod Johnson 创建,目的是为了简化企业级应用的开发。随着时间的发展,Spring 框架经历了多个重要的阶段: #...

    Spring Boot入门与实战_springboot_spring_

    **Spring Boot 入门与实战** Spring Boot 是一个由 Pivotal 团队开发的 Java 框架,旨在简化创建独立的、生产级别的基于 Spring 的应用。它通过提供默认配置来消除大量的样板代码,使得开发者可以更快地构建应用...

    Springboot入门到精通.pdf

    Spring Boot 是一个旨在简化Spring应用程序初始设置和常规配置的框架,它由Pivotal团队于2013年初开始研发,目前稳定版本为2.0.3 RELEASE。Spring Boot并不是要取代Spring框架,而是作为其增强工具,为Spring开发者...

    spring boot入门的第一个项目

    本篇文章将深入探讨Spring Boot入门项目的构建过程,以及它如何与微服务和分布式系统相结合。 **1. Spring Boot基础知识** Spring Boot 的核心理念是“约定优于配置”。它通过内置的Tomcat服务器、自动配置的Spring...

    Spring Boot实战 ,丁雪丰 (译者).zip

    总的来说,《Spring Boot实战》这本书全面覆盖了Spring Boot从入门到进阶的各项知识点,无论是初学者还是有一定经验的开发者,都能从中受益。通过学习,读者将能够熟练掌握Spring Boot的使用,提升开发效率,并有...

    Spring Boot 系列教程 入门

    这个“Spring Boot系列教程入门”将引导你深入了解如何利用Spring Boot快速构建高效、可维护的Web应用。 首先,我们从核心概念开始。Spring Boot的核心优势在于它的“约定优于配置”原则,这意味着它默认设置了一...

    springboot的简单入门

    SpringBoot是Spring框架的一个模块,旨在简化Spring应用的初始搭建以及开发过程。它集成了大量常用的第三方...通过这个入门实践,开发者可以快速了解Spring Boot的工作方式,并为进一步的学习和复杂应用开发打下基础。

    Spring Boot的入门程序

    **Spring Boot 入门程序详解** Spring Boot 是一个由 Pivotal 团队开发的 Java 框架,它的设计目标是简化 Spring 应用的初始搭建以及开发过程。Spring Boot 通过提供“开箱即用”的特性,使得开发者能够快速创建...

    learning spring boot 2.0

    书中除了可能包含基础入门知识外,也很可能涵盖了对于Spring Boot高级特性的讨论,比如微服务架构和响应式编程的实践,这些内容在当下Java开发领域中非常流行且具有实际应用价值。 标签“spring boot”、“java”、...

    Springboot入门到精通(超详细文档)

    本文将深入探讨Spring Boot的基础知识,以及如何从入门到精通。 首先,让我们从Spring Boot的核心概念开始。Spring Boot基于Spring Framework构建,它通过自动配置和starter pom来简化Spring应用的搭建。自动配置...

    Spring Boot 进阶笔记(详细全面) 中文PDF完整版.pdf

    Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化基于 Spring Framework 的应用程序的初始设置和开发过程。它的核心理念是“约定优于配置”,这意味着 Spring Boot 在默认情况下已经预设了很多常用的配置,...

    Spring Boot快速入门

    ### 四、myspringboot和myspringboot-maven子项目 这两个子项目可能分别代表了一个基于Maven构建的Spring Boot应用实例和一个包含Maven配置的示例。在`myspringboot`项目中,你可以看到一个完整的Spring Boot应用...

    Spring Boot实战 ,丁雪丰 (译者) 1

    【Spring Boot实战】由丁雪丰翻译,详细介绍了如何利用Spring Boot进行高效且轻松的Java应用程序开发。Spring Boot是Spring框架家族的一员,旨在简化开发流程,减少代码量,同时提供强大的生产系统构建能力。它引入...

    Spring Boot 教程、技术栈示例代码,快速简单上手教程。

    - **起步依赖**:Spring Boot 通过“起步依赖”(Starter POMs)提供了一种简单的方式来添加功能模块,如 Web、Data JPA、Security 等。 - **内嵌服务器**:Spring Boot 支持内嵌 Tomcat、Jetty 或 Undertow 服务器...

    2023最新《Spring Boot基础教程》

    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 基本介绍 - **微服务架构**:在现代软件开发中,微服务架构是一种流行的设计模式,它将单个应用程序分解为一组小型、独立的服务,每个服务执行特定的...

    Springboot入门到精通完整版.pdf

    Spring Boot 是一个由 Pivotal 团队开发的框架,其设计目的是简化...通过阅读《Springboot入门到精通【完整版】》,你可以系统地学习这个框架,通过实例和实践练习加深理解,逐步成为一名精通Spring Boot的开发者。

    Spring Boot讲义.pdf

    在Spring Boot中,"快速入门"通常指的是新手或初学者对Spring Boot的基本认识和基础使用,能够快速构建和部署一个Spring Boot应用程序。 ### Spring Boot概述 #### 1.1. 什么是Spring Boot Spring Boot是Spring...

Global site tag (gtag.js) - Google Analytics