SpringBoot第一天

什么是SpringBoot?

springBoot是对spring的缺点进行改善和优化 约定大于配置 开箱即用,没有代码生成也不用xml文件配置,可以修改属性来满足

Springboot的入门程序

1.首先创建一个springboot项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在项目中有一个启动类,springboot是载入函数,启动时可以选择图中的三角

或者右键选择run
注意:在写入门程序时一定要让Demo001Application是你的程序的父辈,也就是和你的父级是同一级

Springboot web应用

它支持json,
首先我们先导入一个依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.6</version>
</dependency>

安装lombok插件
在这里插入图片描述
安装好插件之后我们在创建实体类时就可以省去setter、getter和toString方法了,我们可以用注解来代替@Data
@Data这一个注解就可以代替setter、getter和toString方法
@AllArgsConstructor //所有参数的有参数构造函数
@NoArgsConstructor //无参数构造函数
使用时直接在类上添加就可以
还有一个注解 @RestController,这个注解就等于是,@Controller+@ResponseBody

SpringBoot请求传递参数

第一种:请求路径传参
@Requestparam 获取查询参数。 url?name=value
@PathVariable 获取路径参数。即url/{id}

@RequestMapping("/getcar2/{name}")
public Car getCarById(@RequestParam(name="id") Integerid,@PathVariable(name="name") String name) {
	Car car = new Car();
	car.setId(id);
	car.setName(name);
	car.setPrice(100000.99F);
	car.setCreateDate(new Date());
	return car;
}

SpringBoot静态资源

(1)默认静态资源映射
SpringBoot对静态资源映射提供了默认配置
默认将/**所有访问映射到一下目录
classpath:/static
classpath:/public
classpath:/resources
classpath:/META-INF/resources
在这些文件夹中的资源,可以在地址栏中直接访问,如:http://localhost:8080/a.jpg
(2)自定义静态资源访问
第一种方式:配置类

@Configuration//该注解用于表示这个类是一个配置类
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
       //将所有file:d:\\Desktop\\tp\\中的资源全部映射到aaa这个路径下
         registry.addResourceHandler("/aaa/**").addResourceLocations("file:d:\\Desktop\\tp\\");
        
    }
}

第二种方式:配置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},是因为指定的是一个具体的硬盘路径,其他的使用classpath之间的是系统环境变量

Webjars的结构

在这里插入图片描述
可以看出静态文件存放规则:META_INFA/resources/wenjars/名称/版本号
我们在这个目录下翻了一张图片,编写了一个简单的html文件,放在static目录下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello,WebJars</title>
</head>
<body>
  <h1>Hello,WebJars</h1>
  <img alt="图片没有显示出来" src="webjars/demo/0.0.1/ujiuye.jpg">
</body>
</html>

然后编写一个配置类,添加一个资源映射关系

@Controller
public class WebJarsDemoController {     
    @GetMapping("/")
    public String index() {
        return "index.html";
    }
}

我们还可以将META-INF打成一个jar包,然后在导入依赖,在一个新的springboot中添加他的依赖,进行测试

Springboot属性配置

首先将配置文件的后缀名改为application.yml
在写yml文件时,一定要注意头顶不能有别的东西,书写格式冒号空格

server:
  port: 8888  //更改tomcat的端口号
  
  server:
  port: 8888
  servlet:
    context-path: /java001  //修改访问项目的路径

自定义属性及读取

在配置文件中书写自定义号的标签

offcn_ip:
         1.1.1.1
offcn_port:
           9999

创建实体类:

@ConfigurationProperties(prefix = "userbody")
@Data//代替 setter 和 getter 、toString
@AllArgsConstructor //有参构造器
@NoArgsConstructor  //无參构造器
public class Userbody {

    private String name;
    private String password;
    private String birthday;
    private String mobile;
    private String address;
}

然后编写Controller类读取自定义属性

package com.offcn.demo.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloConfigController {
@Value("${offcn_ip}") //用@Value注解来获取自定义属性的值
private String offcn_ip;
 
@Value("${offcn_port}")
private String offcn_port;
 
@GetMapping("/getvalue")
public String getValue() {
return "ip:"+offcn_ip+" port:"+offcn_port;
}
}

EnableConfigurationProperties注解需要加在调用类上,或者加在启动类SpringbootSimpleApplication上也可以。

springboot构建RESTful

RESTful是一种软件架构风格!
RESTful架构风格规定,数据的元操作,即CRUD(create, read, update和delete,即数据的增删查改)操作,分别对应于HTTP方法:GET用来获取资源,
POST用来新建资源(也可以用于更新资源),
PUT用来更新资源,
DELETE用来删除资源,
这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作
1.POST @PostMapping /users 创建一个用户
2.GET @GetMapping /users 查询用户列表
3.GET @GetMapping /users/id 根据id查询一个用户
4.PUT @PutMapping /users/id 根据id更新一个用户
5.DELETE @DeleteMapping /users/id 根据id删除一个用户

@RestController
@RequestMapping("/user-test")
public class UserController {
    private List<User> userList = Collections.synchronizedList(new ArrayList<User>());

    //获取全部用户信息
    @GetMapping("/")
    public List<User> getUserList(){
        return userList;
    }

    //添加用户信息
    @PostMapping("/")
    public String createUser(User user){
        userList.add(user);
        return "success";
    }

    //获取指定用户id信息
    @GetMapping("/{id}")
    public User getUser(@PathVariable("id") Long id){
        for (User user : userList) {
            if (user.getId() == id){
                return user;
            }
        }
        return null;
    }

    //修改指定用户id信息
    @PutMapping("/{id}")
    public String updateUser(@PathVariable("id")Long id,User user){
        for (User user1 : userList) {
            if (user1.getId() == id){
                user1.setName(user.getName());
                user1.setAge(user.getAge());
            }
        }
        return "success";
    }

    //删除指定用户id信息
    @DeleteMapping("/{id}")
    public String deleteUser(@PathVariable("id")Long id){
        userList.remove(getUser(id));
        return "success";
    }
}

总结一下今天的吧,今天所学的东西还是很基础的,特别是那个入门程序,很重要,因为以后,你没有大量的时间去学习,就是在文档中写写入门程序,然后就去加到自己的代码中了,所以,趁着年轻要多学一点东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值