当前位置: 首页> 房产> 市场 > 宁波企业网站排名方法_苏州广告公司排名前20_谷歌google官网入口_站长工具最近查询

宁波企业网站排名方法_苏州广告公司排名前20_谷歌google官网入口_站长工具最近查询

时间:2025/7/9 17:44:04来源:https://blog.csdn.net/jj666mhhh/article/details/143393038 浏览次数:0次
宁波企业网站排名方法_苏州广告公司排名前20_谷歌google官网入口_站长工具最近查询

 博主主页: 码农派大星.

    数据结构专栏:Java数据结构

 数据库专栏:MySQL数据库

JavaEE专栏:JavaEE

软件测试专栏:软件测试

关注博主带你了解更多知识

目录

1. SpringBoot配置⽂件

1.1 很多项⽬或者框架的配置信息也放在配置⽂件中,⽐如:

2. 配置文件快速入手

3. 配置⽂件的格式 

3.1 说明 

4. properties 配置⽂件说明 

4.1 properties 基本语法 

4.2 读取配置⽂件 

5. yml配置⽂件说明 

5.1 yml基本语法

 5.2 yml配置读取

5.2.1配置对象

 5.2.2配置集合

5.2.3配置Map

5.3 注意事项:value值加单双引号

5.4 yml优缺点

6.验证码案例

6.1 需求

6.2 约定前后端交互接⼝ 

需求分析

接⼝定义

请求:

响应: 

6.3 借助Hutool⼯具

6.4 实现服务器端代码

 6.5 调整前端代码

6.6 验证结果

7. 总结 


1. SpringBoot配置⽂件

配置⽂件主要是为了解决硬编码带来的问题,把可能会发⽣改变的信息,放在⼀个集中的地⽅,当我们启动某个程序时,应⽤程序从配置⽂件中读取数据,并加载运⾏.

在 Spring Boot 应用中,配置文件是用来定义应用配置的重要部分,包括数据库连接信息、服务地址、第三方 API 密钥等。Spring Boot 支持多种类型的配置文件,最常用的是 yml 和 properties 文件

1.1 很多项⽬或者框架的配置信息也放在配置⽂件中,⽐如:

• 项⽬的启动端⼝

• 数据库的连接信息(包含⽤⼾名和密码的设置)

• 第三⽅系统的调⽤密钥等信息 • ⽤于发现和定位问题的普通⽇志和异常⽇志等

2. 配置文件快速入手

SpringBoot内置了Tomcat服务器,默认端⼝号是8080, 但是⽤⼾电脑上8080端⼝号有可能就被其他 应⽤程序占⽤了, 所以SpringBoot需要⽀持让⽤⼾⾃定义端⼝号

我们可以通过配置⽂件来修改服务的端⼝号:

修改 application.properties ⽂件:

server.port=10086

显⽰Tomcat启动端⼝号为10086

3. 配置⽂件的格式 

Spring Boot 配置⽂件有以下三种:

application.properties

application.yml

application.yaml

yml为yaml的简写,实际开发中出现频率最⾼. 使⽤ yaml和yml的使⽤⽅式⼀样

3.1 说明 

1 .properties 和 .yml 可以并存在于⼀个项⽬中,但当两个并存时,两个配置都会加载.如果配置⽂件内容有冲突,则以 .properties 优先级更⾼.

2 . 虽然理论上来讲 .properties 可以和 .properties 和 .yml .properties 为主,也就是 .yml 共存,但实际的业务当中,我们通常会采取⼀种 统⼀的配置⽂件格式,这样可以更好的维护

4. properties 配置⽂件说明 

properties 配置⽂件是最早期的配置⽂件格式,也是创建SpringBoot项⽬默认的配置⽂件

4.1 properties 基本语法 

properties 是以键值的形式配置的,key和value之间是以"="连接的

spring.application.name=config-demofont.size=14px

4.2 读取配置⽂件 

在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解使⽤" ${} "的格式读取

@RequestMapping("/prop")
@RestController
public class PropertiesController {@Value("${font.size}")private String fontSize;@RequestMapping("/readValue")public String readValue(){return "fontSize:" + fontSize;}
}

最终执行效果: 

5. yml配置⽂件说明 

5.1 yml基本语法

yml是树形结构的配置⽂件,它的基础语法是"key:value".

key和value之间使⽤英⽂冒号加空格的⽅式组成,空格不可省略

mykey: value1

 5.2 yml配置读取

5.2.1配置对象

 student:id: 1name: Javaage: 18

如果配置的是一个对象,那么就不能使用@Value来读取,应该使用@ConfigurationProperties 

@ConfigurationProperties(prefix = "student")@Component@Datapublic class Student {private int id;private String name;private int age;}

 5.2.2配置集合

//配置文件dbtypes:name:- mysql- sqlserver- db2
//其他类	 
@ConfigurationProperties("dbtypes")@Datapublic class ListConfig {private List<String> name;}

5.2.3配置Map

//配置文件maptypes:map:k1: kk1k2: kk2k3: kk3
//其他类
@Component@ConfigurationProperties("maptypes")@Datapublic class MapConfig {private HashMap<String,String> map;}

5.3 注意事项:value值加单双引号

 string:str1: Hello \n Spring Boot.str2: 'Hello \n Spring Boot.'str3: "Hello \n Spring Boot."

字符串默认不⽤加上单引号或者双引号。

单引号会转义特殊字符,使其失去特殊功能,始终是⼀个普通的字符串.

双引号不会转义字符串⾥⾯的特殊字符,特殊字符会表⽰本⾝的含义 

5.4 yml优缺点

优点:

1. 可读性⾼,写法简单, 易于理解

2. ⽀持更多的数据类型,可以简单表达对象,数组,List,Map等数据形态.

3. ⽀持更多的编程语⾔,不⽌是Java中可以使⽤,在Golang,Python,Ruby,JavaScript中也可以使⽤

缺点:

1.不适合写复杂的配置⽂件

2. 对格式有较强的要求 

6.验证码案例

6.1 需求

1. ⻚⾯⽣成验证码

2. 输⼊验证码,点击提交,验证⽤⼾输⼊验证码是否正确,正确则进⾏⻚⾯跳转

6.2 约定前后端交互接⼝ 

需求分析

后端需要提供两个服务

1. ⽣成验证码,并返回验证码

2. 校验验证码是否正确:校验验证码是否正确

接⼝定义

请求:

1. ⽣成验证码

请求URL: /captcha/get

浏览器给服务器发送⼀个/captcha/get这样的请求,服务器返回⼀个图⽚,浏览器显⽰在⻚⾯上

2. 校验验证码是否正确 

请求:/captcha/check

captcha: ⽤⼾输⼊的验证码

响应: 
 true

6.3 借助Hutool⼯具

验证码的实现,使⽤Hutool提供的⼩⼯具来实现 

 引⼊依赖

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-captcha</artifactId><version>5.8.22</version></dependency>

6.4 实现服务器端代码


import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.ICaptcha;
import cn.hutool.captcha.LineCaptcha;
import cn.hutool.core.lang.Console;
import com.VerificationCode.demo.model.CaptchaProperties;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.io.IOException;
@RequestMapping("/captcha")
@RestController
public class VerificationController {@Autowiredprivate CaptchaProperties captchaProperties;private long VALID_TIME = 60*1000;@RequestMapping("/get")public void getCaptcha(HttpSession session,HttpServletResponse response) throws IOException {ICaptcha captcha = CaptchaUtil.createLineCaptcha(captchaProperties.getWidth(), captchaProperties.getHeight());captcha.write(response.getOutputStream());//禁止缓存response.setHeader("Prama","No-cache");//设置返回格式response.setContentType(("/image.jpeg"));//打印验证码System.out.println(captcha.getCode());//存储sessionsession.setAttribute(captchaProperties.getSession().getCode(),captcha.getCode());session.setAttribute(captchaProperties.getSession().getDate(),System.currentTimeMillis());response.getOutputStream().close();//Servlet的OutputStream记得自行关闭哦!}@RequestMapping("/check")public Boolean check(String captchaCode,HttpSession session){//参数校验//判断用户输入是否和session一致//判断是否在有效期内if(!StringUtils.hasLength(captchaCode)){return false;}String sessionCode = (String)session.getAttribute(captchaProperties.getSession().getCode());Long sessionDate = (Long)session.getAttribute(captchaProperties.getSession().getDate());if(captchaCode.equals(sessionCode) && sessionDate != null && System.currentTimeMillis()-sessionDate<  VALID_TIME ){return true;}return false;}}

把配置项挪到配置⽂件中

captcha:width: 100height: 40session:code: SESSION_CODEdate: SESSION_DATE

把⽣成的验证码存储在Session中,校验时使⽤

验证码配置项对应的Java对象 

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;@Configuration
@ConfigurationProperties(prefix = "captcha")
@Data
public class CaptchaProperties {private Integer width;private Integer height;private Session session;
@Datapublic static class Session{private String code;private String date;}
}

 6.5 调整前端代码

<script>$("#verificationCodeImg").click(function(){$(this).hide().attr('src', '/captcha/get?dt=' + new Date().getTime()).fadeIn();});$("#checkCaptcha").click(function () {$.ajax({type:"post",url: "/captcha/check",data:{captchaCode: $("#inputCaptcha").val()},success:function(result){if(result){location.href = "success.html";}else{alert("验证错误,码有问题!")}}});});</script>

6.6 验证结果

7. 总结 

1. properties 是以key=value的形式配置的键值类型的配置⽂件,yml使⽤的是树形配置⽅式.

2. 读取配置⽂件内容,使⽤ @Value 注解,注解内使⽤" ${} "的格式读取.

3. yml层级之间使⽤换⾏缩进的⽅式配置,key和value之间使⽤":"加空格的⽅式设置,并且空格不可省略.

4. properties 为早期并且默认的配置⽂件格式,其配置存在⼀定的冗余数据,使⽤yml可以很好的解决 数据冗余的问题,但不适合复杂配置.

5. yml可以和properties共存,但⼀个项⽬中建议使⽤⼀种配置类型⽂件

关键字:宁波企业网站排名方法_苏州广告公司排名前20_谷歌google官网入口_站长工具最近查询

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: