SpringBoot快速入门

https://spring.io/

1. SpringBoot简介
Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的、产品级别的应用。
背景:
J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大。
解决:
Spring 全家桶 时代
Spring Boot ——> J2EE一站式解决方案
Spring Cloud ——> 分布式整体解决方案
优点:
快速创建独立的Spring应用程序以及与主流框架集成
直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
提供自己的’入门’POM来简化你的Maven配置(starters自动依赖与版本控制)
尽可能自动配置Spring,简化开发,也可修改默认值
提供生产就绪功能,如指标,运行状况检查和外部配置
绝对不会生成代码,并且不需要XML配置
与云计算的天然集成
学习SpringBoot之前需要熟悉Spring Framework框架,最好熟悉Spring的注解驱动开发

2. 学习springboot,用什么开发工具

传统的用eclipse需要下载sts插件

下载springboot官方推荐的开发工具,sts, 和eclipse长得差不多

用现在比较流行的IntelliJ IDEA 开发工具

一个简单的例子

创建一个项目,

pom.xml 中需要加入:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</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> <!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies> <!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> 新建一个HelloController
@RestController     //等同于同时加上了@Controller和@ResponseBody
public class HelloController { //访问/hello或者/hi任何一个地址,都会返回一样的结果
@RequestMapping(value = {"/hello","/hi"},method = RequestMethod.GET)
public String say(){
return "hi you!!!";
}
}

  

起始应用,由于我创建的时候,选择spring project,起始类和pom中spring的父依赖,都是自动生成的。o(∩_∩)o

Demoday01Application
@SpringBootApplication
public class Demoday01Application { public static void main(String[] args) {
SpringApplication.run(Demoday01Application.class, args);
}
}

  


启动这个main函数,查看日志,可以看到端口号,根目录等信息。

打开浏览器,出现如下,服务算是成功启动起来了


测试一下,下午再来

新增POM中的测试需要的依赖

    <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
@RunWith(SpringRunner.class)
@SpringBootTest
public class Demoday01ApplicationTests { private MockMvc mvc; @Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
} @Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(("gogogo")));
} @Test
public void getHello02() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
} }

  

代码保存到了   删除了,太简单啦,不用代码

试一下配置文件

SpringBoot使用二种全局的配置文件,配置文件名是固定的:

application.properties
application.yml

配置文件的作用:修改SpringBoot自动配置的默认值

application.properties的Sample:
person.last-name=张三
person.age=18
person.birth=2018/01/01
person.boss=false
person.maps.k1=v1
person.maps.k2=v2
person.lists=a,b,c
person.dog.name=小狗
person.dog.age=2

application.yml
*.yml是YAML语法编写的配置文件

YAML简介及语法
YAML(YAML Ain’t Markup Language)

YAML A Markup Language:是一个标记语言

YAML isn't Markup Language:不是一个标记语言;

标记语言:

以前的配置文件;大多都使用的是 *.xml文件

YAML:以数据为中心,比json、xml等更适合做配置文件

YAML语法
key: value:表示一对键值对(:后必须有空格) 
YAML以空格的缩进来控制层级关系,只要左对齐的一列数据都是同一层级,同时对大小写敏感

层级关系很重要,以及: 之后要有空格

server:
  port: 8090
  error:
  path: /error
  spring:
  aop:
  auto: true

最新文章

  1. PHP正则表达式详解(三)
  2. mfc release 版本 内存不足 的解决方法
  3. iOS开发 - OC - 实现本地数据存储的几种方式二(直接使用sqlite)
  4. [百科] - SIP(会话发起协议)
  5. Android各个版本代号及其特性
  6. [Unity菜鸟] Final IK
  7. 聊一聊ES5数组(Array)新增的那些方法
  8. How to: Implement a Windows Communication Foundation Service Contract
  9. redhat 安装hadoop1.2.1伪分布式
  10. android脚步---UI界面修改,增加按钮和监听
  11. jquery列队动画简单演示
  12. APPCORE Routine APIs
  13. Springboot整合Kfka
  14. filebeat-6.4.3-windows-x86_64输出Kafka
  15. python之路day06--python2/3小区别,小数据池的概念,编码的进阶str转为bytes类型,编码和解码
  16. GeoJson
  17. 微信浏览器软键盘弹出与页面resize的问题
  18. 使用Python爬取代理ip
  19. sql截取日期/时间的单独部分,比如年、月、日、小时、分钟等等
  20. [No0000139]轻量级文本编辑器,Notepad最佳替代品:Notepad++

热门文章

  1. PAT 1019 General Palindromic Number[简单]
  2. centos7 设置 静态IP
  3. CentOS6.5安装Redis数据库
  4. 手把手教你,C#.Net如何用Log4net把错误日志写入到SQLite数据库中
  5. pycharm Unresolved reference 无法引入包
  6. shell篇(一)
  7. EOJ Monthly 2018.11 猜价格 (模拟)
  8. Intro to Python for Data Science Learning 8 - NumPy: Basic Statistics
  9. python getctime() 文件最后一次的改变时间
  10. MAVEN打包丢失xml文件解决办法