springboot 学习笔记二

2.1. 环境准备

数据库:MySQL

IDE:Eclipse Mars2

Spring-Boot:1.4.4

Maven: 3.3.3 (官方声明1.4.4版本需要Maven 3.2+)

本地仓库:需要使用资料中的仓库

2.2. 起步依赖

2.2.1. 创建一个Maven工程

 

2.2.2. 添加依赖

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

<parent>

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

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

<version>1.4.4.RELEASE</version>

</parent>

<groupId>cn.cnn.springboot</groupId>

<artifactId>cnn-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后会自动把依赖传递过来。

 

2.3. 变更JDK版本

我们发现默认情况下工程的JDK版本是1.6,但是通常使用的是1.7的版本

 

 

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

<properties>

<java.version>1.7</java.version>

</properties>

 

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

 

 

注意:

虽然JDK1.6或者1.7都可以使用Spring-Boot,但Spring-Boot官方建议使用JDK1.8。要使用JDK1.8,首先必须要配置JDK1.8后,才可以使用上述方法设置。

 

 

 

2.4. 引导类

需要创建一个引导类:

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

 

@SpringBootApplication

public class Demo {

 

public static void main(String[] args) {

SpringApplication.run(Demo.class, args);

}

}

 

这里多了一个@SpringBootApplication注解

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

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

项目。

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

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

 

Banner

直接启动,控制台出现以下标识。

  .   ____          _            __ _ _

 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )

  '  |____| .__|_| |_|_| |_\__, | / / / /

 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::        (v1.4.4.RELEASE)

 

这个标识是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设置,可以通过修改配置文件制定自己的标识。

 

2.5. 入门程序

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

 

2.5.1. 原来的实现

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

 

spring加入配置

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

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

 

<!-- 注解驱动 -->

<mvc:annotation-driven />

 

web.xml加入配置

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

<servlet>

<servlet-name> cnn-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> cnn-springboot</servlet-name>

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

</servlet-mapping>

 

还要编写Controller。。。

2.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 即可看到运行结果

2.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 @ 2020-11-08 18:05  红泥小火炉-  阅读(61)  评论(0)    收藏  举报