springboot第二天--SpringBoot 基本web应用开发

1.SpringBoot json支持

1.1创建实体bean  Car

Lombok使用:

  

1、导入依赖库

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

2、安装插件

 继续:

3、在实体bean使用

@Data //get 、set

@AllArgsConstructor //所有参数的有参数构造函数

@NoArgsConstructor  //无参数构造函数

package com.xhn.po;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data //get 、set   toString
@AllArgsConstructor //所有参数的有参数构造函数
@NoArgsConstructor  //无参数构造函数
public class Car {
    private Integer id;
    private String name;
    private Float price;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createdate;

}

4.创建Controller CarController

package com.xhn.controller;

import com.xhn.po.Car;
import org.springframework.cache.CacheManager;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/car")
public class CarController {

    @RequestMapping("/findone")
    public Car findOneCar(){
       Car car = new Car(1, "toyo", 1999.99F,new Date(),"13567890001");

        return car;
    }

}

说明@RestController 注解,等于@Controller 与 @ResponseBody 一起使用

@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。

一般情况下来说常用其来处理application/json类型

1.2、SpringBoot 请求传递参数

2.1. 第一类:请求路径传参

@RequestParam   获取查询参数。即url?name=value   这种形式

@PathVariable      获取路径参数。即url/{id}        这种形式

代码应用:

(1)修改Controller CarController新增接收参数,返回单个对象方法

package com.xhn.springbootdemo.controller;

import com.xhn.springbootdemo.po.Car;
import org.springframework.web.bind.annotation.*;

import java.util.Date;

@RestController
@RequestMapping("/car")
public class CarController {

    @RequestMapping(value = "/getcar/{id}",method = RequestMethod.GET)
    public String test01(@PathVariable(name = "id") Integer id, @RequestParam(name = "name" ) String name ){
       return "id:"+id+",name:"+name;
    }

}

测试传递参数获取单个对象json

请求地址:http://localhost:8080/getcar2/宝马?id=999

1.3、SpringBoot 静态资源

(1)Spring Boot 对静态资源映射提供了默认配置

Spring Boot 默认将 /** 所有访问映射到以下目录:

classpath:/static

classpath:/public

classpath:/resources

classpath:/META-INF/resources

如:在resources目录下新建 public、resources、static 三个目录,并分别放入 a.jpg b.jpg c.jpg 图片

效果图展示:

(2)、自定义静态资源访问

第一种方式:

1、配置类

package com.xhn.springbootdemo.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

//自定义配置类
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        //将某个磁盘下的资源映射到浏览器上

//将所有E:\\springboot\\pic\\访问都映射到/myPhoto/** 路径下

        registry.addResourceHandler("/myPhoto/**").addResourceLocations("file:E:\\springboot\\pic\\");
    }
}

访问的时候使用此路径:http://localhost:8080/myPhoto/1.jpg

效果图演示:

第二种方式:

首先,我们配置application.properties

web.upload-path=E:/springboot/pic
spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/META-INF/resources/,
  classpath:/public/,classpath:/static/,file:${web.upload-path}

注意:
web.upload-path:这个属于自定义的属性,指定了一个路径,注意要以/结尾;
spring.mvc.static-path-pattern=/**:表示所有的访问都经过静态资源路径;
spring.resources.static-locations:在这里配置静态资源路径,前面说了这里的配置是覆盖默认配置,所以需要将默认的也加上否则static、public等这些路径将不能被当作静态资源路径,在这个最末尾的file:${web.upload-path}之所有要加file:是因为指定的是一个具体的硬盘路径,其他的使用classpath指的是系统环境变量。

例如,在D:/springboot/pic/中有一张8.png图片

在浏览器输入:http://localhost:8080/8.png 即可访问

1.4、WebJars

WebJars实践: 

1、在src/main/resouces路径下创建META-INF/resources/webjars/demo/0.0.1目录,同时为了演示效果,拷贝一个图片到此目录下。

2.

编写一个简单的html页面,放在在src/main/resources/static下(当然也可以直接放在webjar下了,只需要后面加个映射关系即可),内容如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>访问静态资源</title>
</head>
<body>
    <!--webjars/demo/0.0.1/8.png此路径对应刚才创建的路径-->
    <img src="webjars/demo/0.0.1/8.png" alt="映射地址">
</body>
</html>

3、编写配置类,添加一个资源映射关系.其实也可以不写,因为第4节也有说过,springboot默认的四个资源路径里面就包含了/META-INF/resources/了

package com.xhn.springbootdemo.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

//自定义配置类
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        //配置映射关系(后边的路径和前边的路径拼接即为对应的资源文件路径)
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

4.访问对应的html即可

原文地址:https://www.cnblogs.com/xinghaonan/p/11795863.html

时间: 2024-10-11 00:56:41

springboot第二天--SpringBoot 基本web应用开发的相关文章

第二次面试:Web前端开发

今天下班后,哼哧哼哧骑着共享单车去了一家电商创业公司面试,公司实力看不出来,网络上的信息也不够多,不过最近开始秋招了,就当为秋招练练兵. 先是技术面试,面试官本人坐后端的,目测该公司前端实力比较薄弱,问得问题很简单.问了HTTP 方法.状态码.请求-响应组成.前端如何优化性能.块级标签和行内标签的差异.归并排序.数据库索引.一道SQL语句. 再是HR面,面试官本人很有实力,是一位出色的产品经理,履历十分丰富,没问我什么很特别的问题,就问问职业规划.家里情况.前几份工作怎么样. 这一次面试,面试内

SpringBoot 基于web应用开发(请求参数获取,静态资源,webjars)

SpringBoot 基于web应用开发 一.Lombok使用 1.导入依赖库 <dependency>    <groupId>org.projectlombok</groupId>    <artifactId>lombok</artifactId>    <version>1.18.6</version></dependency> 2.安装插件 3.在实体bean使用 @Data    相当于set,ge

springBoot(5):web开发-模板引擎FreeMarker

一.简介 spring boot的web应用开发,是基于spring mvc. Spring boot在spring默认基础上,自动配置添加了以下特性: 1.包含了ContentNegotiatingViewResolver和BeanNameViewResolver beans. 2.对静态资源的支持,包括对WebJars的支持. 3.自动注册Converter,GenericConverter,Formatter beans. 4.对HttpMessageConverters的支持. 5.自动

基于Springboot+SpringCloud的微信点餐系统开发视频教程

基于Springboot+SpringCloud的微信点餐系统开发视频教程课程分享链接:https://pan.baidu.com/s/1q7h9zn8sGf_e0k38pc69tw 密码:fk9w 随着互联网不断发展,大家的生活习惯也不断在改变,像美团,饿了么平台的外卖快速的发展起来,这就是我们所说的O2O,即线上和线下结合同时微信也给人们带来了沟通的便利,现在几乎每个年轻人都会有微信号,所以我们开发微信点餐系统,也是极大方便了大家的使用,只要在打开微信进入我们的点餐系统就可以方便的进行点餐.

《Flask Web开发 基于Python的Web应用开发实战》简评

指路牌 <Flask Web开发><Flask Web开发 基于Python的Web应用开发实战><Flask Web开发>是否适合新手入门Python Web开发? 正文 <Flask Web开发 基于Python的Web应用开发实战>,O'Reilly"动物书系列"的"狗书",应该是很多Flask初学者被推荐使用的入门书,但是这本书真的适合初学者吗? Python的Web框架非常多,例如Django.Flask.T

【SpringBoot】1.SpringBoot介绍

一.SpringBoot产生的契机我们知道,搭建一个Spring+Struts+Hibernate(SSH)架构或Spring+SpringMVC+MyBatis(SSM)架构的应用,基本上都需要以下步骤:(1)配置Maven依赖(2)配置数据库properties配置文件,日志properties文件(3)配置Spring核心类加载文件bean.xml,其中会配置:    a.properties配置引入    b.包扫描    c.数据源(数据库连接池)    d.数据库会话工厂    e.

Spring Boot入门,一步一步简化,实现Spring Web项目开发

一. Spring Boot介绍 Spring Boot诞生的目的就是用来简化Spring应用开发过程.该框架使用了特定的方式来进行配置,从而使得开发人员不在需要定义一系列样板化的配置文件,而专注于核心业务开发.帮助开发人员快速的构建出基于Spring的应用.它会在后台整合项目所需的第三方依赖类库或框架,不再需要编写复杂的XML配置文件,仅通过几行代码就能实现一个可运行的Web应用. 直接嵌入 Tomcat 或 Jetty 服务器,不需要部署 WAR 文件. 提供许多基于Maven的 POM配置

web前端开发规范

本文原创,这里首先声明,转载注明本文出处,翻版必究! web前端开发规范的现实意义 1.提高团队的协作能力 2.提高代码的重复利用率 3.可以写出质量更高,效率更好的代码 4.为后期维护提供更好的支持 5.可读性高 一.命名规则 1.html命名规则: a.文件名称命名规则:统一使用小写英文字母.数字.下划线的组合,不得包含汉字空格和特殊字符 2.命名原则:方便理解.方便查找 b.索引文件命名原则:index.html.index.htm.index.asp.index.aspx.index.j

Web前端开发推荐阅读书籍、学习课程下载

转自http://www.xuanfengge.com/fe-books.html 前言 学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢? 除了在项目中学习和跟着有经验的同事学习,读书也是必不可少的.书中有着相对完整的知识体系,每读一本好书都会带来一次全面的提高. 而如果深一脚浅一脚的学习,写出代码的质量会参差不齐.初学者的首要任务是成为靠谱的熟练开发者,能够稳定的输出有一定质量的代码. 前端技术发展速度特别快,总是涌现出很多新的东西,需要不断的学习