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 (推荐)除去版本路径也可以访问得到

快速访问:http://localhost:8080/webjars/jquery/3.3.1/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的更多相关文章

  1. 001 SringBoot基础知识及SpringBoot整合Mybatis

    1.原有Spring优缺点分析 (1)优点 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品.无需开发重量级的Enterprise J ...

  2. SpringBoot简介与快速入门

    一.SpringBoot简介 1.1 原有Spring优缺点分析 1.1.1 Spring的优点分析 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE ...

  3. SpringBoot基础篇-SpringBoot快速入门

    SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解SpringBoot的核心功能 能够搭建SpringBoot的环境 能够完成applic ...

  4. MacOS下SpringBoot基础学习

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"springboot"获取视频和教程资料! b站在线视 ...

  5. TZ_11_Spring-Boot的入门

    1.SpringBoot的特点 为基于Spring的开发提供更快的入门体验 开箱即用,没有代码生成,也无需XML配置.同时也可以修改默认值来满足特定的需求 提供了一些大型项目中常见的非功能性特性,如嵌 ...

  6. springBoot--01--快速入门

    笔记源码:https://gitee.com/ytfsL/springboot 1.1 原有Spring优缺点分析 1.1.1 Spring的优点分析 Spring是Java企业版(Java Ente ...

  7. SpringBoot系列教程起步

    本篇学习目标 Spring Boot是什么? 构建Spring Boot应用程序 三分钟开发SpringBoot应用程序 本章源码下载 Spring Boot是什么? spring Boot是由Piv ...

  8. SpringBoot起步依赖和自动配置

    一.起步依赖 1. 是什么 本质上是一个Maven项目对象模型(Project Object Model, POM), 定义了对其他库的传递依赖,这些东西加在一起即支持某项功能. 比如: spring ...

  9. SpringBoot入门(二)——起步依赖

    本文来自网易云社区 在前一篇我们通过简单几步操作就生成了一个可以直接运行的Web程序,这是因为SpringBoot代替我们做了许多工作,概括来讲可以分为起步依赖和自动配置.这一篇先来看看起步依赖. 项 ...

  10. Java开发学习(三十五)----SpringBoot快速入门及起步依赖解析

    一.SpringBoot简介 SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程. 使用了 Spring 框架后已经简化了我 ...

随机推荐

  1. 记录一下自己在MVC项目中如何防CSRF攻击,直接上代码

    1.前端的处理: 2.后台 1.)添加过滤器,哪里用放哪里 2.)需要验证的方法上直接添加过滤器即可 大功告成 以下为过滤器代码块 /// <summary>/// ajax中加上Anti ...

  2. TensorFlow Federated:基于分散式数据的机器学习

    https://www.tensorflow.org/federated/ TensorFlow Federated (TFF) 是一个开源框架,用于对分散式数据进行机器学习和其他计算.我们开发 TF ...

  3. c# 第22节 c#四大方法 静态方法、实例方法、虚方法、重新方法

    本节内容: 1:静态方法和实例方法什么 2:虚方法是什么 3:重写方法 4:禁止重写方法 1:静态方法和实例方法是什么 静态方法,一般是类的常用方法,允许在不创建类的实例的情况下,直接调用. 静态方法 ...

  4. python27期前端

    第一天笔记:HTML:是一种标识性的语言css:层叠样式表是一种用来表现HTML等文件样式(效果)的计算机语言JavaScript:简称“JS”,是一种属于网络的脚本语言 常用来为网页添加各式各样的动 ...

  5. Vue v-if,v-else-if,v-else的使用

    v-else-if 要紧跟 v-if v-else要紧跟v-else-if 或 v-if 代码: <!doctype html> <html lang="en"& ...

  6. vscode (1.41.0版本,1.41.1版本)node_modules部分TS声明文件@types包会导致该版本没JS语法提示

    正常提示如下: 然而我的提示没了,本以为是插件问题,把所有插件禁用不行!卸载重装vscode还是不行!!但是其他电脑的1.41.1版本,同样代码确没问题!!!简直日了*了 折腾大半天,发下问题如下: ...

  7. BDFramework.Core 学习

    x哥(懂的都懂)的框架, 拿点代码过来做注释. 想了解详情可以去他的github https://github.com/yimengfan/BDFramework.Core # Object file ...

  8. H3C 12508 收集诊断信息

        案例:H3C 12508单板卡出现remove状态,需要配合研发收集诊断信息. (此文档只展示研发要求的诊断信息.) 总体:12500交换机返回三种文件----故障时诊断信息,主备单板的日志文 ...

  9. Lambda 表达式构建初级示例(不完整)

    直接贴代码了: using System; using System.Collections.Generic; using System.Linq; using System.Linq.Express ...

  10. centOS禁止普通用户su到root

    1.关于su的相关权限涉及到两个文件,分别为/etc/pam.d/su和/etc/login.defs两个配置文件. 2.禁止普通用户su到root,配置如下: 去除/etc/pam.d/su文件中如 ...