开发工具:IDEA 2019

springboot版本:2.1.9

一、springboot2.x VS 1.x

基础环境升级

  • 最低 JDK 8,支持 JDK 9,不再支持 Java 6 和 7

依赖组件升级

  • Spring Boot 2.0 基于 Spring Framework 5 构建,同时也升级了部分其依赖的第三方组件:
  • Jetty 9.4
  • Tomcat 8.5
  • Flyway 5
  • Hibernate 5.2
  • Gradle 3.4
  • Thymeleaf 3.0

默认软件替换和优化

  • HikariCP:默认连接池已从 Tomcat 切换到 HikariCP,HikariCP 是一个高性能的 JDBC 连接池
  • OAuth 2.0:Spring Boot 2.0 将 Spring Security OAuth 项目迁移到 Spring Security。不再提供单独的依赖包,通过 Spring Security 5 提供 OAuth 2.0 客户端支持.
  • Redis 默认使用 Lettuce

测试

  • 对 Spring Boot 2.0 中测试进行了一些补充和调整;
  • @WebFluxTest 已添加新注释以支持 WebFlux 应用程序的“slice”测试。
  • Converter 和 GenericConverter beans 现在自动扫描 @WebMvcTest 和 @WebFluxTest。
  • @AutoConfigureWebTestClient 已经添加到 WebTestClient 供测试使用,这个注释会自动应用于 @WebFluxTest 测试。
  • 增加了一个新的 ApplicationContextRunner 测试实用程序,可以很容易地测试你的自动配置,我们已将大部分内部测试套件移至此新模型。

新技术的引入

  • 支持 HTTP/2
  • 嵌入式 Netty 服务器
  • Kotlin 的支持
  • JOOQ 的支持
  • 支持 Quartz
  • 响应式编程

二、hello-world

  利用IDEA工具创建springboot工程:springboot-demo

pom.xml文件添加依赖
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

编写 Controller 内容创建 HelloController

@RestController
public class HelloController {

  @RequestMapping("/hello")
  public String hello() {
    return "hello world";
  }

}

运行启动类:DemoApplication

浏览器访问:http://localhost:8080/hello ,页面展示 hello world 。

三、自定义filter

Spring Boot 内置了一些 Filter,
比如,处理编码的 OrderedCharacterEncodingFilter 和请求转化的 HiddenHttpMethodFilter,也支持根据我们的需求来可以自定义 Filter。

自定义 Filter 有两种实现方式:(推荐使用第二个方案)
第一种是使用 @WebFilter,
第二种是使用 FilterRegistrationBean

以第二种为例:
1、实现 Filter 接口,实现其中的 doFilter() 方法;
public class MyFilter implements Filter {
  public void init(){}

  public void doFilter(ServletRequest request,ServletResponse ServletResponse,FilterChain chain){}

  public void destroy(){}
}

2、添加 @Configuration 注解,将自定义 Filter 加入过滤链。

@Configuration
public class WebConfiguration {

@Bean
FilterRegistrationBean filterRegistrationBean(){
  FilterRegistrationBean registrationBean = new FilterRegistrationBean();
  registrationBean.setFilter(new MyFilter());
  registrationBean.addUrlPatterns("/*");
  registrationBean.setName("MyFilter");
  //当有多个过滤器时可以通过设置 Order 属性来决定它
  registrationBean.setOrder(6);
  return registrationBean;
}
}

四、读取配置文件两种方式:

在 application.properties 中自定义配置:

demo.name=xxxxx

从配置文件加载单个配置内容时:

1、在注入的字段上使用注解 @Value 即可

@Value("${demo.name}")
private String name;

2、定义对象接受多个配置项
class类上使用注解 @ConfigurationProperties (prefix="demo") 列如:

@Component
@ConfigurationProperties (prefix="demo")
public class Demo{

private String name;

}
表示以 demo 开头的属性会自动赋值到对象的属性中,比如,demo.name 会自动赋值到对象属性 name 中

五、自定义配置文件:

  1、在 resources 目录下创建一个 my.properties 文件
  my.name=test
  my.password=test

2、定义对象接受配置项
类上使用注解 @PropertySource("classpath:my.properties") 读取配置文件

@Component
@ConfigurationProperties(prefix = "my")
@PropertySource("classpath:my.properties")
public class MyProperties {

private String name;
private String password;
//省略setter getter
}

springboot笔记之helloworld的更多相关文章

  1. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  2. (一)IDEA工具开第一个springboot应用之helloworld

    (一)IDEA工具开第一个springboot应用之helloworld 一.前置知识 1.maven相关知识 2.spring注解 3.RESTful API 二.idea开发第一个springbo ...

  3. MOOS学习笔记2——HelloWorld回调

    MOOS学习笔记2--HelloWorld回调 例程 #include "MOOS/libMOOS/Comms/MOOSAsyncCommClient.h" bool OnConn ...

  4. MOOS学习笔记1——HelloWorld

    MOOS学习笔记1--HelloWorld 例程 /* * @功能:通讯客户端的最简单程序,向MOOSDB发送名为"Greeting" * 数据"Hello", ...

  5. U3D学习笔记1: HelloWorld

    Unity 版本: 5.3.5.f1 Hello World工程 1.新建工程 HelloWorld U3D可选2D和3D游戏   2.新建C#脚本文件 在project栏的assets目录右键-&g ...

  6. SpringBoot笔记十六:ElasticSearch

    目录 ElasticSearch官方文档 ElasticSearch安装 ElasticSearch简介 ElasticSearch操作数据,RESTful风格 存储 检查是否存在 删除 查询 更新 ...

  7. SpringBoot入门(0) HelloWorld的实现与原理分析

    SpringBoot(0) HelloWorld的实现与原理分析 一.环境准备 1.1 环境约束 –jdk1.8:Spring Boot 推荐jdk1.7及以上:java version “1.8.0 ...

  8. SpringBoot学习之Helloworld

    1. 如果使用Spring开发一个"HelloWorld"的web应用 创建一个web项目并且导入相关jar包.SpringMVC Servlet 创建一个web.xml 编写一个 ...

  9. SpringBoot入门 (一) HelloWorld

    一 什么是springboot springboot是一个全新的框架,它设计的目的简化spring项目的初始环境的搭建和开发,主要有以下几个特点: 1.简化初始配置 ,可与主流框架集成: 2.内置Se ...

随机推荐

  1. DOM导航与DOM事件

    HTML DOM 导航 通过 HTML DOM,能够使用节点关系在节点树中导航. ㈠HTML DOM 节点列表 getElementsByTagName() 方法返回节点列表.节点列表是一个节点数组. ...

  2. Maven 在 pom.xml 文件中配置 repositories 仓库

    如果你希望在你的项目中使用独立的 repositories . 例如,你希望配置使用自己的 https://maven.ossez.com/repository/internal 作为仓库. 例如,修 ...

  3. 51 Nod 1134 最长递增子序列(经典问题回顾)

    1134 最长递增子序列  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出长度为N的数组,找出这个数组的最长递增子序列.(递增子序列是指,子序列的元 ...

  4. TTTTTTTTTTTTTTTTT CF #182 div1 B floyd

    题意: 有 n(3≤n≤100) 个站点,当第一次到达站点 u 的时候会增加寿命 au(1≤au≤103),题目给了 n 个站点的二位空间坐标,每两个站点之间的距离为曼哈顿距离(dis(i, j)=| ...

  5. 【杂题】【CometOJ Contest #5】E:迫真大游戏【概率】【排列组合】【多项式】

    Description 有一个n个点的环,有一个指针会从1号点开始向后扫描,每次扫描有p的概率删除当前点 询问每个点最后一个被删除的概率. 答案对998244353取模 n<=200000 So ...

  6. java从ldap中导出数据到ldif文件中

    原创:http://www.cnblogs.com/dqcer/p/7814034.html 导入ldap.jar包,笔者已对下面两个文件测试并通过.若有疑问欢迎留言 LDAPExport.java ...

  7. XSS这段时间的学习总结

    0X01利用平台payload获取COOKIE 本机IP 192.168.1.100 靶机win7 192.168.1.102 我们先创建一个cookie的项目 然后在可以执行xss的地方插入我们的恶 ...

  8. 分布式-信息方式-JMS大纲

     一.简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息, ...

  9. SNMP命令

    snmp命令 配置管理网络协议Weblogic项目管理Cisco Snmputil 命令 Snmputil是一个命令行下的软件,使用语法如下: usage: snmputil get|getnext| ...

  10. RF-创建一个自定义关键字库

    仓库自定义库 这里以Selenium2Library库进行举例说明: 编写一个自定义仓库类(与库文件夹名一致),继承关键字类,指定范围和版本即可. 需要声明__init__. import os fr ...