起步:SpringBoot
pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
maven依赖:
1 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
华为云镜像:
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>
-基本web开发
1、导入依赖库
lombok的使用:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
2.安装Lombok插件:plugins---->lombok
3.实体类中
@Data //get set tostring
@AllArgsConstructor //所有参数构造方法
@NoArgsConstructor //空参构造方法
public class Car {
private Integer id;
private String name;
private Float price;
// @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 传入参数
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") 传出参数
private Date createDate;
}
4.Controller:
请求参数两种类型:
@RequestParam 获取查询参数。即url?name=value 这种形式
@PathVariable 获取路径参数。即url/{id} 这种形式
@RestController //相当于@Controller+@ResponseBody 类中所有方法都返回json数据
@RequestMapping("/car")
public class CarController { @RequestMapping("/demo")
public String demo(){
return "demo.html";
}
-静态资源访问
(1)、默认静态资源映射
Spring Boot 对静态资源映射提供了默认配置
Spring Boot 默认将 /** 所有访问映射到以下目录:
classpath:/static
classpath:/public
classpath:/resources
classpath:/META-INF/resources
(2)、自定义静态资源访问
将静态资源路径设置到磁盘的基本个目录,上传文件时上传到磁盘中
方式1.使用配置类实现WebMvcConfigurer接口,重写addResourceHandlers(ResourceHandlerRegistry registry)
@Configurable
public class WebMvcConfig implements WebMvcConfigurer{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//配置映射关系
//访问/images,则映射到d:\a\下 registry.addResourceHandler("/images/**").addResourceLocations("file:D:\\a\\"); }
}
在浏览器输入:http://localhost:8080/images/1.jpg即可访问。
方式2.配置application.properties
web.upload-path=D:/springboot/pic/
spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,\
classpath:/static/,classpath:/public/,file:${web.upload-path}
web.upload-path:这个属于自定义的属性,指定了一个路径,注意要以/结尾;
spring.mvc.static-path-pattern=/**:表示所有的访问都经过静态资源路径;
spring.resources.static-locations:在这里配置静态资源路径,前面说了这里的配置是覆盖默认配置,
所以需要将默认的也加上否则static、public等这些路径将不能被当作静态资源路径,
在这个最末尾的file:${web.upload-path}之所有要加file:是因为指定的是一个具体的硬盘路径,其他的使用classpath指的是系统环境变量。
--WebJars
推荐使用Webjars的三大理由:
- 将静态资源版本化,更利于升级和维护。
- 剥离静态资源,提高编译速度和打包效率。
- 实现资源共享,有利于统一前端开发。
使用步骤:
1.引入依赖:
<dependency><!--Webjars版本定位工具(前端)-->
<groupId>org.webjars</groupId>
<artifactId>webjars-locator-core</artifactId>
</dependency> <dependency><!--Jquery组件(前端)-->
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.3.1</version>
</dependency>
2.访问静态资源
快速访问:http://localhost:8080/webjars/jquery/jquery.js (推荐)除去版本路径也可以访问得到
--SpringBoot属性配置
1.默认属性配置文件application.properties(可以修改后缀为.yml)
application.yml
server:
port: 8888
servlet:
context-path: /javaok
访问http://localhost:8888/javaok即可
2.自定义属性及读取
在application.yml文件中,配置一些常量或者其他参数配置。读取的时候通过Spring的@Value(“${属性名}”)注解即可
application.yml
server:
port: 8888
servlet:
context-path: /javaok
server_ip: 192.168.10.9999999999
@RestController
public class HelloController { @Value("${server_ip}") //获取到自定义参数值server_ip
private String server_ip; @GetMapping("/getMapping")
public String getMapping(){
return server_ip;
}
}
3.实体类属性赋值
当属性参数变多的时候,我们习惯创建一个实体,用实体来统一接收赋值这些属性。
application.yml user:
name: www
password: 8888888
birthday: 1992.10.28
mobile: 1234567890
address: beijing
实体类:在实体类上增加注解@ConfigurationProperties,并指定prrfix前缀 @ConfigurationProperties(prefix = "user")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String name;
private String password;
private String birthday;
private String mobile;
private String address; }
Controller层:
EnableConfigurationProperties注解需要加在调用类上,或者加在启动类SpringbootSimpleApplication上也可以。
@RestController
@EnableConfigurationProperties({User.class,TestUser.class}) //多个实体类加载
public class UserController { @Autowired
User user; @Autowired
TestUser testUser; @GetMapping("/testUser")
public String test(){
return testUser.toString();
} @GetMapping("/getUser")
public String getUser(){
return user.toString();
}
4.自定义配置文件
创建文件test.properties
testuser.name = "mike"
testuser.password = "123"
testuser.birthday = "1978.10.28"
实体类:
pring boot 1.5版本后@PropertySource注解就不能加载自定义的yml配置文件了
1.5版本后需要通过@PropertySource(“classpath:test.properties”)指定配置文件
@Configuration 注解包含@Component注解
@Configuration
@PropertySource("classpath:test.properties")
@ConfigurationProperties(prefix = "testuser")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TestUser {
private String name;
private String password;
private String birthday; }
5.多环境配置文件
可以使用多个yml来配置属性,将于环境无关的属性放置到application.yml文件里面;通过与配置文件相同的命名规范,创建application-{profile}.yml文件 存放不同环境特有的配置,例如 application-test.yml 存放测试环境特有的配置属性,application-prod.yml 存放生产环境特有的配置属性。
通过这种形式来配置多个环境的属性文件,在application.yml文件里面spring.profiles.active=xxx来指定加载不同环境的配置,如果不指定,则默认只使用application.yml属性文件,不会加载其他的profiles的配置。
application.yml spring:
profiles:
active: prod //将调用application-prod.yml
application-test.yml server:
port: 8081
servlet:
context-path: /javaok1
application-prod.yml server:
port: 8082
servlet:
context-path: /javaok2
application-dev.yml server:
port: 8083
servlet:
context-path: /javaok3
--SpringBoot构建RESTful API
1 Controller层:
private List<User> listUser= Collections.synchronizedList(new ArrayList<User>()); //查询所有
@GetMapping("/")
public List<User> getAllUser(){
return listUser;
}
//获取指定id的user
@GetMapping("/{id}")
public User getUser(@PathVariable("id") Long id){
for(User u:listUser){
if(u.getId()==id){
return user;
}
}
return null;
}
//插入
@PostMapping("/")
public String insert(User user){
listUser.add(user);
return "success";
}
//根据id修改
@PutMapping("/{id}")
public String update(@PathVariable("id") Long id,User user){
for (User user2 : listUser) {
if(user2.getId()==id) {
user2.setName(user.getName());
user2.setAge(user.getAge());
}
}
return "success";
}
//根据id删除
@DeleteMapping("/{id}")
public String delete(@PathVariable("id") Long id){
listUser.remove(getUser(id));
return "success";
}

起步:SpringBoot的更多相关文章
- 001 SringBoot基础知识及SpringBoot整合Mybatis
1.原有Spring优缺点分析 (1)优点 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品.无需开发重量级的Enterprise J ...
- SpringBoot简介与快速入门
一.SpringBoot简介 1.1 原有Spring优缺点分析 1.1.1 Spring的优点分析 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE ...
- SpringBoot基础篇-SpringBoot快速入门
SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解SpringBoot的核心功能 能够搭建SpringBoot的环境 能够完成applic ...
- MacOS下SpringBoot基础学习
学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"springboot"获取视频和教程资料! b站在线视 ...
- TZ_11_Spring-Boot的入门
1.SpringBoot的特点 为基于Spring的开发提供更快的入门体验 开箱即用,没有代码生成,也无需XML配置.同时也可以修改默认值来满足特定的需求 提供了一些大型项目中常见的非功能性特性,如嵌 ...
- springBoot--01--快速入门
笔记源码:https://gitee.com/ytfsL/springboot 1.1 原有Spring优缺点分析 1.1.1 Spring的优点分析 Spring是Java企业版(Java Ente ...
- SpringBoot系列教程起步
本篇学习目标 Spring Boot是什么? 构建Spring Boot应用程序 三分钟开发SpringBoot应用程序 本章源码下载 Spring Boot是什么? spring Boot是由Piv ...
- SpringBoot起步依赖和自动配置
一.起步依赖 1. 是什么 本质上是一个Maven项目对象模型(Project Object Model, POM), 定义了对其他库的传递依赖,这些东西加在一起即支持某项功能. 比如: spring ...
- SpringBoot入门(二)——起步依赖
本文来自网易云社区 在前一篇我们通过简单几步操作就生成了一个可以直接运行的Web程序,这是因为SpringBoot代替我们做了许多工作,概括来讲可以分为起步依赖和自动配置.这一篇先来看看起步依赖. 项 ...
- Java开发学习(三十五)----SpringBoot快速入门及起步依赖解析
一.SpringBoot简介 SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程. 使用了 Spring 框架后已经简化了我 ...
随机推荐
- 初学JavaScript正则表达式(六)
JavaScript预定义类 ab+数字+任意字符 ab[0-9][^\r\n] 等价于 ab\d. '@123@abc@'.replace(/@./g,'Q') Q23Qbc@ 将"@加任 ...
- 2017年蓝桥杯B组C/C++决赛题目
2017年第八届蓝桥杯B组C/C++决赛题目 点击查看2017年蓝桥杯B组C/C++决赛题解 1.36进制 对于16进制,我们使用字母A-F来表示10及以上的数字. 如法炮制,一直用到字母Z, ...
- jmeter beanshell断言接口自动化实例
一.JMeter介绍 Apache JMeter是一款优秀的开源性能测试工具,在国外无论是在性能测试还是接口测试领域都有着非常高的使用率,但由于本身没有完善的中文文档以及典型开源工具特点(界面不美观) ...
- VMWare虚拟机提示:锁定文件失败,打不开磁盘...模块"Disk"启动失败的解决办法
我出现该问题的原因: 昨天电脑一下子卡死,于是我就重启了电脑,重启之后我没有打开VMware虚拟机,结果第二天一上班打开VMware就发现出现了“锁定文件失败,打不开磁盘......模块"D ...
- python 读写.tar.gz文件 -- UnicodeDecodeError
在用pip install 安装库的时候,偶尔会出现编码错误(如:UnicodeDecodeError: 'gbk' codec can't decode byte),对此我们可先将包下载下来(一般为 ...
- 鲜贝7.3--python安装
方法一:google 搜索 anaconda 进入官网下载64位最新版本 勾选加入环境变量 +默认3.7 打开cmd pip 发现已经完成安装 右键此电脑 属性 高级属性 环境变量 ’ 已经被加入 方 ...
- 卷积核filter和kernal的区别
在一堆介绍卷积的帖子中,这篇特别之处在于很萌的示例配色,令人眼前一亮,当然直观也是很直观滴,保证了能在昏昏欲睡见周公子前看完. https://towardsdatascience.com/types ...
- luoguP3181 [HAOI2016]找相同字符
题意 考虑将\(s1\)和\(s2\)接在一起求出相同子串个数,再求出\(s1\)自己匹配的相同子串个数和\(s2\)自己匹配的相同子串个数减去即可. 如何求相同子串个数: 我们知道子串的集合即所有后 ...
- java中的转义字符(遇到再进一步总结)
一.常见的转义字符转移字符对应的英文是escape character , 转义字符串(Escape Sequence)字母前面加上捺斜线""来表示常见的那些不能显示的ASCII字 ...
- Angular命令和基础操作
本文档假设你已经熟悉了 HTML,CSS,JavaScript和来自最新标准的一些知识,比如类和模块. 一.Angular命令 命令语法: 大多数命令以及少量选项,会有别名.别名会显示在每个命令的语法 ...