JAVA 八月 13, 2023

Thymeleaf —— 简化 Java Web 开发的强大模板引擎

文章字数 15k 阅读约需 14 mins.

原文地址:https://wyiyi.github.io/amber/2023/08/01/thymeleaf/

Thymeleaf 是一种用于在服务器端和客户端之间渲染 HTML、XML、JavaScript...

查看全文

SPRING 十二月 04, 2022

为非全局路径配置 Filter 的两种方法

文章字数 16k 阅读约需 15 mins.

原文地址:https://wyiyi.github.io/amber/2022/12/01/filter-note/

Filter 上加 @WebFilter (javax.servlet.annotation.WebFilter),指定 value,启动类加 @ServletComponentScan

【注意】:@ServletComponentScan 这个注解仅对内嵌的 tomcat 生效,如果使用单独的 tomcat,这种方式无效

示例一:

@WebFilter(filterName ...
查看全文

WEB 十月 02, 2022

【转】跨域(CORS)问题分析与解决方案

文章字数 6.5k 阅读约需 6 mins.

原文地址:跨域(CORS)问题分析与解决方案

新创建一个 VUE 工程,使用 fetch 函数(如下所示) 调用后台 GET 接口,希望能够在后台获得到响应。

fetch('http://127.0.0.1:8080/api/amber/userinfo/hello')
  .then(response => response)

当浏览器访问:http://127.0.0.1:8181/#/ 就出现了问题:后台能够接到请求,但返回响应被浏览器拦截。
查看浏览器的 NETWORK ...

查看全文

SPRING 七月 10, 2022

【转】Spring 之 Interceptor

文章字数 5.3k 阅读约需 5 mins.

原文地址:https://wyiyi.github.io/amber/2022/07/01/interceptor/

什么是拦截器

在 Spring Web MVC 中,拦截器(Interceptor)同 Servlet 中的过滤器(Filter) 类似,都可以实现对用户的请求做出相应的处理。

所有 HandlerMapping 的实现都支持处理程序拦截器,当想将特定功能应用于某些请求时很有用 —— 例如检查权限。
拦截器必须实现 org.springframework.web.servlet 包中...

查看全文

JAVA 四月 17, 2022

写测试用例都这么简单了,你不来试试?

文章字数 14k 阅读约需 13 mins.

提到测试,所有人都知道它的重要性,但大部分开发人员都会觉得测试应该交给测试人员来做,或者直接到环境上执行一下、点一点看看没有问题就可以了。

究其原因,个人觉得是因为写单元测试的成本太高了,尤其是对外部环境依赖较多的项目,开发环境想运行起来都要依赖特定的组件,就更别提测试用例的运行了。

一个好的测试用例,应该是自动化的、可重复执行的,容易理解、容易运行的,且有明确的断言,以便在代码出现不符合预期的结果时,能够快速发现且定位到问题的。

本文以一些面向 Java 和 Spring 的常见测试场景为例,...

查看全文

SPRING 一月 09, 2022

Spring boot 应用不重新打包,添加新类

文章字数 2.8k 阅读约需 3 mins.

因为某些约束,我们可能不希望对 Spring Boot 应用重新打包,却又需要调整其中的某些行为(如:添加新类),有没有办法?

1. PropertiesLauncher

修改启动命令,不再是使用 java -jar 方式启动,而是使用传统的 Java 应用启动方式,先通过 -cp 参数将 Fat Jar (example.jar)加入 classpath,然后指定运行的主类 PropertiesLauncher,并且通过 -D 参数,将系统属性传入主类中。

$ java -cp example....
查看全文

SPRING 八月 22, 2021

HTML <form> 只支持 GET 和 POST!

文章字数 5.1k 阅读约需 5 mins.

在 Web 开发中,常规的提交数据方式为使用 form 表单,例如:

<form action="" method="get" class="form-example">
  <div class="form-example">
    <label for="name">Enter your name: </label>
    <input type="...
查看全文

SPRING 六月 27, 2021

玩转 @ConditionalOnMissingBean

文章字数 7k 阅读约需 6 mins.

男人,不能说不行! 中,留了两个问题:

  1. 为什么名为 testServiceImpl 的 Bean 会被注册?
  2. 为什么无法注入 TestService 的实例?

先从可运行环境 https://github.com/AlphaHinex/conditional-on-missing-bean-demo 看下结果。

在测试用例中,通过 @Autowired 注解注入了 TestService,但调用时,报了空指针异常,说明容器中没有 TestService 类型的实例。

那么是 @ConditionalOnMi...

查看全文

SPRING 六月 20, 2021

男人,不能说不行!

文章字数 1.4k 阅读约需 1 mins.

在这个特别的日子里,我第一个想到的,是 李健 在 我是歌手 中演唱的《父亲写的散文诗》,又让我想起了参加我是歌手的每一位歌手,对待自己所热爱的事业的坚持和执着。

歌手,是一个职业,但每一个好的歌手,都不会仅仅把它当做一个职业。

拥有坚定的信念时,一切阻碍都能想办法克服;否则,任何理由都可以成为失败的借口。

就像父亲为了孩子,会竭尽全力一样。

借此机会,致敬每一位为了信念,不轻言放弃,拼命坚持的人!

Spring Boot 提供了一系列 @ConditionalOnXXXX 注解,用来在满足或不满...

查看全文

SPRING 三月 14, 2021

如何给 Spring Boot 外挂 classpath?

文章字数 3.8k 阅读约需 3 mins.

假设使用 Spring Boot 开发了一个可使用不同数据库的应用,每个数据库的 jdbc 驱动包都不同,不想在 Fat Jar 中打入所有的数据库驱动 jar,又不想为每一个确定了具体数据库的场景都打一个对应的 Fat Jar 包,有没有优雅的方式来实现这个需求呢?

我们先来看下 Spring Boot 的 Fat Jar(Executable Jar)是如何运行的。

通常情况下,要启动一个 Spring Boot 应用,可通过如下方式:

$ java -jar example.jar

Spring...

查看全文
加载更多
0%