Springboot 学习笔记 之 Day 1
SpringBoot快速入门
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
最新文章
- PHP正则表达式详解(三)
- mfc release 版本 内存不足 的解决方法
- iOS开发 - OC - 实现本地数据存储的几种方式二(直接使用sqlite)
- [百科] - SIP(会话发起协议)
- Android各个版本代号及其特性
- [Unity菜鸟] Final IK
- 聊一聊ES5数组(Array)新增的那些方法
- How to: Implement a Windows Communication Foundation Service Contract
- redhat 安装hadoop1.2.1伪分布式
- android脚步---UI界面修改,增加按钮和监听
- jquery列队动画简单演示
- APPCORE Routine APIs
- Springboot整合Kfka
- filebeat-6.4.3-windows-x86_64输出Kafka
- python之路day06--python2/3小区别,小数据池的概念,编码的进阶str转为bytes类型,编码和解码
- GeoJson
- 微信浏览器软键盘弹出与页面resize的问题
- 使用Python爬取代理ip
- sql截取日期/时间的单独部分,比如年、月、日、小时、分钟等等
- [No0000139]轻量级文本编辑器,Notepad最佳替代品:Notepad++
热门文章
- PAT 1019 General Palindromic Number[简单]
- centos7 设置 静态IP
- CentOS6.5安装Redis数据库
- 手把手教你,C#.Net如何用Log4net把错误日志写入到SQLite数据库中
- pycharm Unresolved reference 无法引入包
- shell篇(一)
- EOJ Monthly 2018.11 猜价格 (模拟)
- Intro to Python for Data Science Learning 8 - NumPy: Basic Statistics
- python getctime() 文件最后一次的改变时间
- MAVEN打包丢失xml文件解决办法