Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

前言最近写 Java 项目的时候突然就想到 Java 的工程能不能像是前端项目一样已保存就自动编译呢?于是我就找到了spring-boot-devtools这个插件,配置好之后试了下感觉不错!但是突然就发现热部署之后控制台开始刷日志了,往上面翻了几行发现是项目重启了…。这时候我的云强迫症就犯了,既然是自动重启那为啥我不写个脚本失去焦点时重启项目。于是我去 google 了一会儿发现了 hop...

我的环境 Java 17 maven 3 Tomcat 10.0.20 BUG 的产生因为最近在尝试自己通过 servlet 实现一个简易的 SpringMvc 框架,所以遇到了这个访问 404 的问题。 首先我可以确定我的项目时毫无问题的(毕竟直接用 maven 通过模板创建的),因此我肯定这是项目配置的问题。本来我使用的是这个依赖,想必大家第一次接触 servlet 用的也是这个版本的...

Java 基础Java 编程基础知识(概述)Java 的数据类型Java 中共有八种基本数据类型,其中有 4 种整形、2 种浮点类型、1 种字符串类型和 1 种布尔类型。 整形整形用于表示没有小数位的数值,允许为复数。Java 共有四种整形。 类型 储存要求 取值范围 int 4 字节 -2147483648~2147483647 short 2 字节 -32768~3276...
note

When allowCredentials is true, allowedOrigins cannot contain the special value “*“since that cannot be set on the “Access-Control-Allow-Origin” response header. To allow credentials to a set of origins, list them explicitly or consider using “allowedOriginPatterns” instead.

//      config.addAllowedOrigin("*");
        config.addAllowedOriginPattern("*");

Consider injecting the bean as one of its interfaces or forcing the use of CGLib-based proxies by setting proxyTargetClass=true on @EnableAsync and/or @EnableCaching.

javamelody:
  advisor-auto-proxy-creator-enabled: false

关于开启事务处理可能会出现的问题

依赖类配置了 AOP 切面增强,比如是配置了事务自动管理的 Service 实现类,并且采用的是 JDK 动态代理实现方式。

在 Spring 中,AOP 增强后的 Proxy,是基于代理模式实现的(JDK 的动态代理)或子类继承(Cglib 方式)。

你定义了一个 Interface,写了一个 Impl1 实现 Interface,Impl1 的 Proxy 增强类 Spring 帮你‘生成’。生成的方式如果是 JDK 动态代理,那么生成的 Impl2 是 Interface 的实现,跟 Impl1 是并列关系,所以 Spring 的 Context 中并没有 Impl1 及它的子类,你@Autowire 按 Impl1 来就找不到 candidate 类了。

如果非要按实现类注入(不建议这么做),使用 Cglib 实现方式就可以了。

note

导入依赖

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.30</version>
        </dependency>
note

概念回顾

按值调用/值传递(call by value)

方法接收的是调用者提供的值

按引用调用/引用传递(call by reference)

方法接收的是调用者提供的变量地址

Java 是那种调用方式?

将引用做为值进行传递的按值引用。详见下例

note

问题描述在项目完整加载了 freemarker 模板依赖之后访问 web 资源路径返回 404 问题解决 方法 1:在配置文件中添加属性 spring.freemarker.suffix=.ftl 方法 2:修改 ftl 模板文件的拓展名为 ftlh 问题产生原因从 springboot2.2.0 开始 freemarker 模板默认拓展名改为.ftlh,所以我使用 ftl 拓展...