![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
晚风亦是救赎
做个很酷的人 认真且随性.
展开
-
关于Java反射获取静态属性值的方式
先随意创建一个用户类:/** * @author 晚风 * @since 2022/3/14 11:31 */public class User { private String name; public final static String vname = "小红";}再创建一个Main类,来获取静态变量的值:public class Main{ public static void main(String[] args) { try原创 2022-03-14 11:49:02 · 7034 阅读 · 1 评论 -
Mybatis 问题记录
项目中遇到一个报错:org.apache.ibatis.binding.BindingException: Parameter 'xxxQuery' not found. Available parameters are [arg1, arg0, param1, param2]因为用于分页,所以mapper接口是这样的:IPage<xxxxxListVo> getAll(IPage<XxxVo> page,XxxQuery query);报错原因,因为有两个参.原创 2021-12-15 17:24:15 · 446 阅读 · 0 评论 -
SpringBoot 注解笔记
@PostConstruct从Java EE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解,@PostConstruct和@PreDestroy,这两个注解被用来修饰一个非静态的void()方法。写法有如下两种方式:@PostConstructpublic void someMethod(){}// 或者public @PostConstruct void someMethod(){}被@PostConstruct修饰的方法会在服务器加载Servlet的时候运原创 2021-12-07 15:00:40 · 264 阅读 · 0 评论 -
SpringBoot @Value注解笔记
项目中有个保存文件的需求,文件的保存路径需要放在配置文件中:使用@Value注解拿取配置文件中的值。一般使用 @Value("${xxx.xx}") 拿取值。被这个注解修饰的属性,不能是静态属性,也不能在本类的构造方法中拿。违背上面两条那么获取不到配置文件中设定的值,会一直为null。笔记记录下,遇到的一个小问题......原创 2021-12-06 21:29:30 · 325 阅读 · 0 评论 -
SpringBoot 同时上传文件和其它字段值
后端如何接收?public Result updateFile(List<MultipartFile> files, AppUser user) { //.. 文件封装在 files 内,其它字段放在 user 内,user也可以是单个值}原创 2021-12-06 19:57:59 · 666 阅读 · 0 评论 -
SpringBoot 国际化(i18n)体验
步骤1:资源文件下创建以下目录messages.properties 文件中为默认显示文字messages_en_Us.properties 文件#这里填写英语翻译。user.title=User Loginuser.welcome=Welcomeuser.username=Usernameuser.password=Passworduser.login=Sign Inmessages_zh_CN.properties 文件#这里填写中文翻译user.title=用.原创 2021-12-06 15:37:25 · 643 阅读 · 0 评论 -
SpringBoot Aspect初体验
导入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>编写aspect类:@Aspect@Componentpublic class TestAspect { @Pointcut("execut原创 2021-11-29 23:13:26 · 178 阅读 · 0 评论 -
SpringBoot 使用validation进行参数校验
导入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>entity类上添加校验注解:@Datapublic class User { @Min(value = 3) priv原创 2021-11-29 22:15:01 · 646 阅读 · 0 评论 -
Shiro 的第一个hello world
shiro.ini 文件[users]zhangsan=123456lisi=123测试代码 public static void main(String[] args) { // 1、获取SecurityManager工厂, 可以使用ini配置文件初始化SecurityManager Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:s原创 2021-11-27 15:51:17 · 68 阅读 · 0 评论 -
Web工程web.xml详解
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/.原创 2021-11-26 11:00:32 · 260 阅读 · 0 评论 -
Java 反射问题记录
问题:通过反射获取一个方法上的参数具体名称,需要进行判断是否一致,结果获取到的名字都是 arg0,arg1...网上说在idea设置里添加参数可以解决,试了无效。最终发现我使用的是maven来管理项目,项目里指定的是使用8来编译,但是获取参数名要求需要1.8,所以,改下编译的版本即可。 <plugins> <plugin> <groupId>org.apache.maven.plugins原创 2021-11-24 16:15:25 · 177 阅读 · 0 评论 -
Java 中实体类划分理解
pojo(简单Java对象)传统意义的 java 对象,能够做到维护数据库表记录的实体类就是一个完全符合 java bean 规范的纯 java 对象,没有增加别的属性和方法。一般就是只有属性字段和 setter 和 getter 方法。dto(数据传输对象)主要是指展示层与服务层之间之间的数据传输对象。vo(值对象)通常用于业务层之间的数据传递,仅仅包含数据,一般是抽象出来的业务对象。do(领域对象)从现实中抽象出来有形或者无形的业务实体po(持久层对象)原创 2021-11-21 20:49:19 · 612 阅读 · 0 评论 -
HttpServletResponse 接口源码学习
/** * 说明:HttpServletResponse 继承 ServletResponse 接口 * 实现 HttpServletResponse 接口需要实现 这两个接口中的所有方法 * */public interface HttpServletResponse extends ServletResponse { /** * 说明:网页响应的状态码 * */ int SC_CONTINUE = 100; int SC_SWITCHING_PROT.原创 2021-11-21 18:25:11 · 397 阅读 · 0 评论 -
ServletResponse 接口源码学习
import javax.servlet.ServletOutputStream;import java.io.IOException;import java.io.PrintWriter;import java.util.Locale;public interface ServletResponse { // 返回在此响应中发送的正文所使用的字符编码(MIME字符集)的名称 String getCharacterEncoding(); // 返回用于在此响应中发送的M.原创 2021-11-21 18:11:06 · 68 阅读 · 0 评论 -
HttpServletRequest 接口源码学习
import java.io.IOException;import java.security.Principal;import java.util.Collection;import java.util.Enumeration;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.http.HttpServletResponse;import javax..原创 2021-11-21 17:55:41 · 455 阅读 · 0 评论 -
ServletRequest 接口源码学习
import javax.servlet.*;import java.io.BufferedReader;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.Enumeration;import java.util.Locale;import java.util.Map;public interface ServletRequest { Object getA.原创 2021-11-21 15:55:02 · 271 阅读 · 0 评论 -
HttpServlet 抽象类源码学习
import java.io.IOException;import java.io.Serializable;import java.lang.reflect.Method;import java.text.MessageFormat;import java.util.Enumeration;import java.util.ResourceBundle;import javax.servlet.GenericServlet;import javax.servlet.ServletExcep.原创 2021-11-21 15:24:31 · 149 阅读 · 0 评论 -
GenericServlet 抽象类源码学习
import javax.servlet.*;import java.io.IOException;import java.io.Serializable;import java.util.Enumeration;import java.util.ResourceBundle;/** * 说明:通用Servlet抽象类 * 这个类将 Servlet 和 ServletConfig 接口同时实现 * 继承该类相当于同时实现了Servlet和ServletConfig接口 * */publ.原创 2021-11-21 14:48:48 · 591 阅读 · 0 评论 -
Servlet 接口源码分析
import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import java.io.IOException;public interface Servlet { /** * 说明:在 Servlet 的生命期中,仅执行一次 init() 方法.原创 2021-11-21 14:25:40 · 173 阅读 · 0 评论 -
Cookie 类源码分析笔记
import java.io.Serializable;import java.text.MessageFormat;import java.util.ResourceBundle;public class Cookie implements Cloneable, Serializable { /** * serialVersionUID适用于Java的序列化机制。 * 简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。 .原创 2021-11-21 13:59:40 · 463 阅读 · 0 评论 -
Java 反射笔记
最近想做一个东西,比如有一个方法 void test(List<Person> personList);我需要通过反射获取到该方法上的参数的泛型类型。以下代码记录这一次实现的细节:import java.lang.reflect.*;import java.util.List;public class CTest { public void test(List<Person> personList) { } static class.原创 2021-11-20 14:45:05 · 66 阅读 · 0 评论 -
Maven 打包项目时本地jar无法打包进去问题解决
一般的依赖都是放在maven的pom.xml文件中引入,但是有时候我们也会手动添加一些jar,那么在打包项目时,maven并不知道去哪里找你自己添加的这些jar,就会报错,无法打包成功。解决,在pom.xml配置中加上以下这段: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>mave原创 2021-11-19 10:21:45 · 5416 阅读 · 0 评论 -
Java 反射相关方法学习总结
public class Main{ public static void main(String[] args) throws IllegalAccessException, InstantiationException { Class<User> c = User.class; User user = c.newInstance(); // 通过反射实例化对象 Field[] fields = c.getFields().原创 2021-11-18 20:28:12 · 188 阅读 · 0 评论 -
Java 反射相关错误记录
错误原型:Exception in thread "main" java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType源代码:public class Parent<T> {}public class Children<T> extends Parent<T> { private Class<原创 2021-11-18 10:56:31 · 410 阅读 · 0 评论 -
token 理解
token在什么情况下出现的?Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。token的定义Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。使用token的原因Token的目的是为了原创 2021-11-15 12:02:47 · 1603 阅读 · 0 评论 -
手动将java文件打包编译成jar包
心血来潮,很多idea工具都有打包的功能,却想试试怎么手动打包!具体步骤如下:1、编写一个java文件(Hello.java)public class Hello{ public static void main(String[] args){ System.out.println("hello,world"); }}2、使用 javac Hello.java 将其编程成class文件3、新建一个配置文件,名字任意(这里是aaa.txt),大概内容如下原创 2021-11-13 14:14:12 · 5593 阅读 · 0 评论 -
maven 生成项目,运行时提示没有主清单属性
在pom.xml文件中加上如下代码:<build> <finalName>test</finalName><!-- 导出jar的名字 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-p原创 2021-11-10 19:52:35 · 117 阅读 · 0 评论 -
Java 案例之随机点名
代码:import java.util.Random;import java.util.Scanner;/** * @author 晚风亦是救赎 * @create 2021/10/19 * @describe 随机点名案例 * */public class Test03 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);原创 2021-10-19 13:31:38 · 268 阅读 · 0 评论 -
Java 案例之九九乘法表
代码:/** * @author 晚风亦是救赎 * @create 2021/10/19 * @describe 打印九九乘法表 * */public class Test02 { public static void main(String[] args) { for(int i = 1;i <= 9;i++){ for(int j = 1;j <= i;j++){ System.out.原创 2021-10-19 13:30:34 · 53 阅读 · 0 评论 -
Java 案例之打印金字塔
代码:import java.util.Scanner;/** * @author 晚风亦是救赎 * @create 2021/10/19 * @describe 打印金字塔 * */public class Test01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入金字塔打原创 2021-10-19 13:29:32 · 1211 阅读 · 0 评论 -
Maven打包项目成jar运行时提示 “没有主清单属性”
新建一个Maven项目,编写好代码之后执行mvn compile和mvn package后生成了jar文件然后在jar目录中打开cmd命令窗口执行java -jar xxx.jar命令出现了“xxx.jar没有主清单属性”的提示解决方案在pom.xml文件,添加如下配置:<build> <plugins> <plugin> <groupId>org.apache.maven.plug..原创 2021-10-11 09:40:55 · 1404 阅读 · 0 评论 -
Swagger 同时扫描多个类
正常来说,如果不指定扫描的类,默认是全局扫描,在java文件下的类、接口都会被扫描到,一般会手动指定,只对需要的类进行注解说明。但有时会不局限于一个包下需要扫描,所以需要同时指定多个!代码:@Beanpublic Docket docket(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() // 同时指定扫描多个包下的注解,.原创 2021-09-26 15:18:10 · 768 阅读 · 1 评论 -
Swagger 常用注解(笔记)
用于 api 类、方法、参数、返回值说明!代码:@RestController@Api(tags = "文章模块") // 作用与类上,描述类public class ArticleController { @PostMapping("/addArticle") @ApiOperation("新增一篇文章") // 作用于方法上,描述方法 @ApiImplicitParam(name = "article",value = "新增的文章对象") // 作用于方法原创 2021-09-26 15:12:33 · 65 阅读 · 0 评论 -
Failed to decode downloaded font 浏览器异常警告解决
问题:在将之前写好的静态 HTML 页面引入到 SpringBoot 中,静态资源中带有 font 字体图标,引入后图标不能正常显示,且浏览器出现Failed to decode downloaded font警告;原因:触发这种情景的原因是因为项目使用了Maven管理,想要修复它只需在pom文件中添加<filtering>false</filtering>完整配置:<resources> <resource> ..原创 2021-09-22 13:25:30 · 2107 阅读 · 0 评论 -
SpringBoot文件上传并保存到resources目录下
获取resources目录的绝对路径:public String getSavePath() { // 这里需要注意的是ApplicationHome是属于SpringBoot的类 // 获取项目下resources/static/img路径 ApplicationHome applicationHome = new ApplicationHome(this.getClass()); // 保存目录位置根据项目需求可随意更改 return applic原创 2021-09-22 11:50:11 · 14799 阅读 · 2 评论 -
判断 HttpServletRequest request 中是否带有文件
判断代码:ServletFileUpload.isMultipartContent(request)方法说明:<form action="/upload" method="post" enctype="multipart/form-data"></form>ServletFileUpload.isMultipartContent(request) 方法判断表单 enctype 属性是否为"multipart/form-data"...原创 2021-09-22 11:38:53 · 2276 阅读 · 0 评论 -
SpringBoot 访问 resources 下的.html文件 404 问题记录
这两天遇到一个springboot的问题:当访问项目中的任意资源(即“/**”)时,Spring Boot 会默认从以下路径中查找资源文件(优先级依次降低):classpath:/META-INF/resources/ classpath:/resources/ classpath:/static/ classpath:/public/但是我在 /static/ 下写了一个 index.html ,通过 http://localhost:8080/ 和http://localhost.原创 2021-09-21 15:13:11 · 2755 阅读 · 1 评论 -
SpringBoot 的 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)异常信息错误排雷
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)解决思路:① 在 pom.xml 加入以下代码 <build> <resources> <resource> <directory>src/main/resources</directory>原创 2021-09-19 16:04:32 · 106 阅读 · 0 评论 -
关于SpringMVC控制层返回数据到前端出现406错误
406错误:原因:后端返回数据,但是前端无法正常接收数据情况:cotroller上加注解@RestController 默认返回前端的数据是json格式,但返回的不是json,所以出现了406错误解决方案:方案1:使用json转换jar,如fastJSON...将数据转换成JSON格式方案2:springMVC中有内置的消息转换类,但未完全导入依赖,所以:(导入如下依赖即可)<!--解决返回视图层406错误的jar包 start--><dep..原创 2021-08-29 09:13:31 · 709 阅读 · 0 评论 -
Java多线程创建的三种方式
在Java中创建线程有三种方式: 继承 Thread 类 实现 Runnable 接口 实现 Callable 接口 继承 Thread 类创建线程步骤:1. 自定义线程类继承 Thread 类2. 重写 run() 方法,编写线程执行体3. 创建线程对象,调用 start() 方法启动线程// 创建线程方式一:继承Thread类//线程开启不一定马上执行,由CPU调度来调度执行public class TestThread1 extends Thre原创 2021-08-17 18:12:58 · 101 阅读 · 0 评论