1、Spring Boot 入门

1.1. 环境准备

数据库:MySQL 5.7

IDE:Eclipse 4.7 Oxygen

Spring-Boot:2.1.0

Maven: 3.5.3 

1.2. 起步依赖

1.2.1. 创建一个Maven工程

1.2.2. 添加依赖

在pom.xml中添加依赖,效果如下

<parent>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-parent</artifactId>

  <version>2.1.0.RELEASE</version>

</parent>

<groupId>cn.itcast.springboot</groupId>

<artifactId>itcast-springboot</artifactId>

<version>0.0.1-SNAPSHOT</version>

<dependencies>

  <dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-web</artifactId>

  </dependency>

</dependencies>

我们会惊奇地发现,我们的工程自动添加了好多好多jar 包,而这些jar 包正式我们做开发时需要导入的jar 包。

因为这些jar 包被我们刚才加入的spring-boot-starter-web 所引用了,所以添加spring-boot-starter-web后会自动把依赖传递过来。

1.3. 变更JDK版本

修改JDK为1.8,需要在pom.xml中添加以下配置:

<properties>

  <java.version>1.8</java.version>

</properties>

使用Maven更新工程后,就发现版本已经变成1.8了

1.4. 引导类

需要创建一个引导类:

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

 @SpringBootApplication

public class DemoApplication{

  public static void main(String[] args) {

    SpringApplication.run(DemoApplication.class, args);

  }

}

这里多了一个@SpringBootApplication注解

@Configuration: 用于定义一个配置类

@EnableAutoConfiguration :Spring Boot 会自动根据你jar 包的依赖来自动配置

项目。

@ComponentScan: 告诉Spring 哪个packages 的用注解标识的类会被spring

自动扫描并且装入bean 容器。

启动后控制台会出现spring标识

这个标识是Spring启动标识,如果不想要,可以设置取消

import org.springframework.boot.Banner.Mode;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public class Application {

  public static void main(String[] args) {

    // SpringApplication.run(Application.class, args);

    SpringApplication application = new SpringApplication(Application.class);

    application.setBannerMode(Mode.OFF);

    application.run(args);

  }

}
参考附录二的banner设置,可以通过修改配置文件制定自己的标识。

1.5. 入门程序

需求:使用Spring MVC实现Hello World输出

1.5.1.原来的实现

我们现在开始使用spring MVC 框架,实现json 数据的输出。如果按照我们原来的做法,需要在web.xml 中添加一个DispatcherServlet 的配置,

还需要添加一个spring的配置文件,配置文件如下配置。

spring加入配置:

<!-- controller注解扫描 -->

<context:component-scan base-package="cn.itcast.springboot.controller" />

<!-- 注解驱动 -->

<mvc:annotation-driven />

web.xml加入配置:

<!-- 配置前端控制器 -->

<servlet>

  <servlet-name> itcast-springboot</servlet-name>

  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

  <init-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>classpath:spring/*.xml</param-value>

  </init-param>

</servlet>

<servlet-mapping>

  <servlet-name> itcast-springboot</servlet-name>

  <url-pattern>/</url-pattern>

</servlet-mapping>

还要编写Controller。。。

1.5.2. Spring-Boot的实现

我们不需要配置文件,直接编写Controller类即可

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class HelloWorldController {

  @RequestMapping("info")

  public String info() {

    return "Hello world!";

  }

}

@RestController注解:其实就是@Controller和@ResponseBody注解加在一起

启动方式一:启动之前编写的引导类即可

启动方式二:使用Maven命令spring-boot:run执行即可

选择 Maven Build

在浏览器地址栏输入http://localhost:8080/info 即可看到运行结果

1.6. 热部署

我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间。

能不能在我修改代码后不重启就能生效呢?可以,由于Spring Boot应用只是普通的Java应用,所以JVM热交换(hot-swapping)也能开箱即用。

不过JVM热交换能替换的字节码有限制,想要更彻底的解决方案可以使用Spring Loaded项目或JRebel。 spring-boot-devtools 模块也支持应用

快速重启(restart)。我们只需要在pom.xml加入如下配置即可。

<dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-devtools</artifactId>

</dependency>

 

posted @ 2018-12-20 10:38  幸福小海豹  阅读(216)  评论(0编辑  收藏  举报