SSM
文章平均质量分 93
阿昌喜欢吃黄桃
这个作者很懒,什么都没留下…
展开
-
Mybatis中的sql-xml延迟加载机制
主查询对象关联对象假设咱们现在有2张表,一张是item表,一张是sku表,对应关系是1对多的关系主查询对象:itemDO关联对象:itemDO对象中的skuIdList。原创 2024-02-05 13:45:08 · 948 阅读 · 0 评论 -
Day164.CRUD、扩展[功能+插件]、使用流程 -MyBatisPlus
MyBatis-Plus一、CRUD1、插入Insert操作//测试插入@Testvoid testInsert(){ User user = new User(); user.setName("阿昌"); user.setAge(21); user.setEmail("995931576@qq.com"); int insert = userMapper.insert(user); // 帮我们自动生成id System.out.println原创 2021-01-15 19:47:17 · 468 阅读 · 0 评论 -
Day164.简介概述、HelloWorld -MyBatisPlus
MyBatisPlus一、简介概述MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。愿景成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。1、特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅原创 2021-01-15 12:41:20 · 306 阅读 · 0 评论 -
Day645.思考题解答③ -Java业务开发常见错误
Hi,阿昌来也,今天记录学习的是针对学习文章的一些思考题答案。问题 1:在讲“为什么我的日志会重复记录?”的案例时,我们把 INFO 级别的日志存放到 _info.log 中,把 WARN 和 ERROR 级别的日志存放到 _error.log 中。如果现在要把 INFO 和 WARN 级别的日志存放到 _info.log 中,把 ERROR 日志存放到 _error.log 中,应该如何配置 Logback 呢?答:要实现这个配置有两种方式,分别是:直接使用 EvaluatorFilter 和自定义一个原创 2022-06-12 21:25:31 · 401 阅读 · 1 评论 -
Day644.Spring框架开发双刃剑 -Java业务开发常见错误
Hi,阿昌来也,今天学习记录的是针对的学习文章记录。Spring 框架内部的复杂度主要表现为三点:一个案例:使用 Spring Cloud 做微服务调用,为方便统一处理 Feign,想到了用 AOP 实现,即使用 within 指示器匹配 feign.Client 接口的实现进行 AOP 切入。代码如下,通过 @Before 注解在执行方法前打印日志,并在代码中定义了一个标记了 @FeignClient 注解的 Client 类,让其成为一个 Feign 接口:通过 Feign 调用服务后可以看到日志中有原创 2022-06-11 22:19:30 · 502 阅读 · 0 评论 -
Day643.IoC和AOP是扩展的核心 -Java业务开发常见错误
Hello,来也!今天记录的是的一些基础内容案例的学习笔记。熟悉 Java 的都知道,Spring 的家族庞大,常用的模块就有 、、、 等。其实呢,Spring 体系虽然庞大,但都是围绕 展开的,而 Spring Core 中最核心的就是和 。概括地说,IoC 和 AOP 的初衷是解耦和扩展。理解这两个核心技术,就可以让你的代码变得更灵活、可随时替换,以及业务组件间更解耦。IoC,其实就是一种设计思想。使用 Spring 来实现 IoC,意味着将你设计好的对象交给 Spring 容器控制,而不是直接在对象原创 2022-06-10 23:55:36 · 351 阅读 · 0 评论 -
Day629.思考题解答① -Java业务开发常见错误
思考题解答①Hi,我是阿昌,这是针对前面学习文章记录结尾总和在一起的思考题解答。一、ThreadLocalRandomThreadLocalRandom是 Java 7 引入的一个生成随机数的类。你觉得可以把它的实例设置到静态变量中,在多线程情况下重用吗?答:不能。ThreadLocalRandom 文档里有这么一条:Usages of this class should typically be of the form: ThreadLocalRandom.current().nextX(原创 2022-05-26 22:44:54 · 568 阅读 · 0 评论 -
Day628.Spring声明式事务问题 -Java业务开发常见错误
Spring声明式事务问题Hi!阿昌来也!今天学习记录的是相关Spring声明式事务的问题,其实之前记录的2篇文章已经聊了一下,大多数业务开发同学都有事务的概念,也知道如果整体考虑多个数据库操作要么成功要么失败时,需要通过数据库事务来实现多个操作的一致性和原子性。但,在使用上大多仅限于为方法标记 @Transactional,不会去关注事务是否有效、出错后事务是否正确回滚,也不会考虑复杂的业务代码中涉及多个子业务逻辑时,怎么正确处理事务。事务没有被正确处理,一般来说不会过于影响正常流程,也不容易在测原创 2022-05-25 22:17:02 · 583 阅读 · 0 评论 -
Day622.Spring编程错误根源 -Spring编程常见错误
Spring编程错误根源我们使用Spring中会出现很多很多的问题,梳理下关于 Spring 使用中常见的一些错误根源。一、隐式规则的存在要想使用好 Spring,你就一定要了解它的一些潜规则,例如默认扫描 Bean 的范围、自动装配构造器等等。如果我们不了解这些规则,大多情况下虽然也能工作,但是稍微变化,则可能完全失效,例如在之前的博客 中,我们使用 Spring Boot 来快速构建了一个简易的 Web 版 HelloWorld:其中,负责启动程序的 Application 类定义如下://原创 2022-05-19 22:46:06 · 422 阅读 · 0 评论 -
Day621.Spring Test 常见错误 -Spring编程常见错误
Spring Test 常见错误在 Spring Test 的应用上,有哪些常见错误呢?以下举例2个错误:一、资源文件扫描不到首先,我们来写一个 HelloWorld 版的 Spring Boot 程序以做测试备用。先来定义一个 Controller:@RestControllerpublic class HelloController { @Autowired HelloWorldService helloWorldService; @RequestMappin原创 2022-05-18 23:08:53 · 719 阅读 · 0 评论 -
Day620.SpringRestTemplate常见错误 -Spring编程常见错误
SpringRestTemplate常见错误微服务之间的通信大多都是使用 HTTP 方式进行的,这自然少不了使用 HttpClient。在不使用 Spring 之前,我们一般都是直接使用 Apache HttpClient 和 Ok HttpClient 等,而一旦你引入 Spring,你就有了一个更好的选择,这就是我们这一讲的主角 RestTemplate。那么在使用它的过程中,会遇到哪些错误呢?一、参数类型是 MultiValueMap@RestControllerpublic class原创 2022-05-17 23:30:58 · 1629 阅读 · 0 评论 -
Day619.Spring事务常见错误② -Spring编程常见错误
Spring事务常见错误②继续讨论事务中的另外两个问题,一个是关于事务的传播机制,另一个是关于多数据源的切换问题。一、环境前缀课程表 course,记录课程名称和注册的学生数。CREATE TABLE `course` ( `id` int(11) NOT NULL AUTO_INCREMENT, `course_name` varchar(64) DEFAULT NULL, `number` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) EN原创 2022-05-16 22:48:49 · 617 阅读 · 0 评论 -
Day618.Spring事务常见错误① -Spring编程常见错误
Spring事务常见错误①Spring 事务管理包含两种配置方式第一种是使用XML 进行模糊匹配,绑定事务管理;第二种是使用注解,这种方式可以对每个需要进行事务处理的方法进行单独配置,你只需要添加上 @Transactional,然后在注解内添加属性配置即可。在我们的错误案例示范中,我们统一使用更为方便的注解式方式。一、环境前置我们还需要引入一些配置文件和类,简单列举一下。数据库配置文件 jdbc.properties,配置了数据连接信息。jdbc.driver=com.mysql原创 2022-05-15 21:22:06 · 688 阅读 · 0 评论 -
Day617.SpringData常见错误 -Spring编程常见错误
SpringData常见错误Spring已经为我们继承好了去操作对应数据源的方式:SpringData,如下名:Spring Data CommonsSpring Data JPASpring Data KeyValueSpring Data LDAPSpring Data MongoDBSpring Data RedisSpring Data RESTSpring Data for Apache CassandraSpring Data for Apache GeodeSpring原创 2022-05-14 21:22:03 · 573 阅读 · 0 评论 -
Day616.SpringException常见错误 -Spring常见编程错误
SpringException常见错误Spring针对异常处理也会存在系列的问题,以下举两个SpringException的常见错误。一、小心过滤器异常还是沿用之前在事务处理中用到的学生注册的案例,来讨论异常处理的问题:@Controller@Slf4jpublic class StudentController { public StudentController(){ System.out.println("construct"); } @Post原创 2022-05-13 22:50:18 · 472 阅读 · 0 评论 -
Day615.SpringSecurity常见错误 -Spring编程常见错误
SpringSecurity常见错误针对SpringSecurity,Java程序员都会知道。他是一种Filter链+职责链设计模式的安全框架。那在使用它的时候也会出现一些常见的错误,如下就列举一些开发中可能会出现的常见错误。一、PasswordEncoder匹配不到错误第一次尝试使用 Spring Security 时,我们经常会忘记定义一个 PasswordEncoder。因为这在 Spring Security 旧版本中是允许的。而一旦使用了新版本,则必须要提供一个 PasswordEnc原创 2022-05-12 22:43:10 · 1300 阅读 · 0 评论 -
Day614.SpringWebFilter常见错误② -Spring编程常见错误
SpringWebFilter常见错误②继续上节部分,如下依然使用@ServletComponentScan+@WebFilter的方式,同样也照样可能会出现如下的问题。一、@WebFilter 过滤器使用@Order注解失效首先,创建启动程序的代码如下:@SpringBootApplication@ServletComponentScan@Slf4jpublic class Application { public static void main(String[] args) {原创 2022-05-11 22:11:45 · 478 阅读 · 1 评论 -
Day613.SpringWebFilter常见错误① -Spring编程常见错误
SpringWebFilter常见错误①在SpringWeb开发中,Filter必然是一个十分重要的角色。他可以对于一个请求进行鉴权、日志等操作。那如下记录了你可能在Filter编程中会出现的常见错误。一、@WebFilter 过滤器无法被自动注入我们为一个系统定义一个Filter,其功能为了统计接口耗时代码如下:@WebFilter@Slf4jpublic class TimeCostFilter implements Filter { public TimeCostFilter原创 2022-05-10 23:30:04 · 682 阅读 · 0 评论 -
Day612.SpringWeb参数校验常见错误 -Spring编程常见错误
SpringWeb参数校验常见错误针对SpringWeb中,我们对应Controller中,参数校验必然是一大组成的部分。Spring也为我们提供了一些类的参数校验功能。那下面记录一些类在Spring参数校验会出现的一些常见问题。一、入参对象参数校验失效当开发一个系统时,我们会提供了一个 API 接口去添加相关信息,其对象定义参考下面的代码:@Datapublic class Student { @Size(max = 10) private String name;原创 2022-05-09 22:53:29 · 995 阅读 · 0 评论 -
Day611.SpringWebBody转化常见错误 -Spring编程常见错误
SpringWebBody转化常见错误Spring 对于 Body 的处理很多是借助第三方编解码器来完成的。例如常见的 JSON 解析,Spring 都是借助于 Jackson、Gson 等常见工具来完成。所以在 Body 处理中,我们遇到的很多错误都是第三方工具使用中的一些问题。真正对于 Spring 而言,错误并不多,特别是 Spring Boot 的自动包装以及对常见问题的不断完善,让我们能犯的错误已经很少了。不过,毕竟不是每个项目都是直接基于 Spring Boot 的。如下会记录一些常见原创 2022-05-08 21:23:43 · 765 阅读 · 0 评论 -
Day610.SpringWebHeader解析常见错误 -Spring编程常见错误
SpringWebHeader解析常见错误针对SpringWeb开发解析Http请求中的参数有很多,之前的文章写的涉及的是Spring在URI上的参数解析的方案。那这次记录的笔记是Spring针对http请求中Header头上参数解析的一些常见问题。针对Header 往往是不二之举,Header 是介于 URL 和 Body 之外的第二大重要组成,它提供了更多的信息以及围绕这些信息的相关能力,例如 Content-Type 指定了我们的请求或者响应的内容类型,便于我们去做解码。虽然 Spring 对原创 2022-05-07 21:44:53 · 1518 阅读 · 0 评论 -
Day609.SpringWebURL解析常见错误 -Spring编程常见错误
SpringWebURL解析常见错误虽然Spring很强大,他有很多很多的功能。但是他最主要大部分的使用领域还是在Web开发领域。针对Web开发,那必然会涉及到Http请求,那请求的URI就十分的重要。Spring是如何对Http请求中URI进行解析的呢???而期间Spring会出现很多哪些常见的问题呢?一、当 @PathVariable 遇到 /在解析一个 URL 时,我们可能会使用到 @PathVariable 这个注解。例如我们会经常见到如下风格的代码:@RestController原创 2022-05-06 23:31:17 · 1046 阅读 · 1 评论 -
Day608.Spring事件常见错误 -Spring编程常见错误
Spring事件常见错误针对Spring事件,它是一个相对比较独立的点。或许你从没有在自己的项目中使用过 Spring 事件,但是你一定见过它的相关日志。而且在未来的编程实践中,你会发现,一旦你用上了 Spring 事件,往往完成的都是一些有趣的、强大的功能,例如动态配置。前言Spring 事件就是,监听器设计模式在 Spring 中的一种实现,参考下图:Spring 事件包含以下三大组件。事件(Event):事件本身用来区分和定义不同的事件,在 Spring 中,常见的如 Appl原创 2022-05-05 22:19:42 · 760 阅读 · 0 评论 -
Day607.Aop不同类型增强顺序&同类型增强顺序问题 -Spring编程常见错误
Aop不同类型增强顺序&同类型增强顺序问题在Day606的文章中,咋们聊了记录了一下aop的两个使用错误的问题案例【this 调用的当前类方法无法被拦截、通过代理类访问被代理类的成员属性抛空指针异常】。那这次我们记录讨论,一个当一个系统采用的切面越来越多时,因为执行顺序而导致的问题便会逐步暴露出来,内容如下。前置条件一个系统有一个电费充值模块,它包含了一个负责电费充值的类 ElectricService,还有一个充电方法 charge():@Servicepublic class El原创 2022-05-04 21:17:25 · 725 阅读 · 0 评论 -
Day606.SpringAOP常编程错误案例① -Spring编程常见错误
SpringAOP常编程错误案例①Spring AOP 是 Spring 中除了依赖注入外(DI)最为核心的功能。顾名思义,AOP 即 Aspect Oriented Programming,翻译为面向切面编程。而 Spring AOP 则利用 CGlib 和 JDK 动态代理等方式来实现运行期动态方法增强,其目的是将与业务无关的代码单独抽离出来,使其逻辑不再与业务代码耦合,从而降低系统的耦合性,提高程序的可重用性和开发效率。追根溯源,我们之所以能无感知地在容器对象方法前后任意添加代码片段,那是由于原创 2022-05-03 20:57:16 · 1368 阅读 · 1 评论 -
Day605.Bean生命周期错误问题 -Spring编程常见错误
SpringBean生命周期错误问题当我们在使用Spring框架时,必然会涉及到@Autowired、@Bean、@Component等这些对SpringIoc容器进行注入bean的注解方案。当我们不了解Spring的生命周期时,在一些特定的场景,需要达成一定对应需求的时候就会出现问题,如:注入的时机不对导致的空指针等一、构造器内抛空指针异常现在给出如下代码案例所需要实现的需求:我们需要在LightMgrService类的构造器中,去执行LightMgrService类中一个成员属性的方法@Co原创 2022-05-02 22:32:50 · 1186 阅读 · 0 评论 -
Day604.@Value注入问题&集合类型注入问题 -Spring编程常见错误
@Value注入问题&集合类型注入问题讲到Spring的反转注入,必然知道他的强大,当这次今天阿昌总结的两种问题,当@Value和Spring注入集合类型有可能会发生的问题如下:一、@Value 没有注入预期的值当使用@Value,大部分的人可能觉得他只会用于在去注入String类型的场景,当其实他也可以去注入对象类型。对于对象类型的注入,大部分人都会选择去使用@Autowired 或者 @Resource的方式去注入,而不会选择@Value。举例@Autowired 和 @Value 的原创 2022-05-01 21:33:04 · 1432 阅读 · 0 评论 -
Day603.Bean选取问题&找不到问题 -Spring编程常见错误
Spring编程常见错误#Bean选取问题&找不到问题当讲到Spring,那第一会想到依赖注入、控制反转。那必然会想到一个从ioc容器拿到bean的注解@Autowired,他是用来支持依赖注入的核心利器之一。那以下列举,在使用@Autowired注解会出现的一些小问题。一、当Bean选择过多时不管是Spring菜鸡还是大神,都会遇到过Spring的问题:↓这问题就是说这个Bean是单例的,但是找到了两个。required a single bean, but 2 were foun原创 2022-04-30 20:31:07 · 1431 阅读 · 0 评论 -
Day602.Spring编程常见错误①
一、隐式扫描不到 Bean 的定义针对Spring那必然会说到约定大于配置,当我们启动一个springboot的主启动类时,可以让整个项目启动,装载Bean实例。当主启动类的位置发生了变化了之后,就会出现Bean找不到了,或者某某controller对应的接口找不到了等。。。那在springboot的主启动类上面会标有SpringBootApplication的注解,其他的一个复合注解@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTI原创 2022-04-29 22:30:23 · 1263 阅读 · 0 评论 -
阿昌教你看懂SpringMVC执行流程
阿昌教你看懂SpringMVC执行流程一、前言Hello呀!!!阿昌又来也 ╰(°▽°)╯!!!SpringMVC的执行流程大家应该都挺熟悉的,但是真的去debug源码的人应该算少数,这里阿昌一直都想自己记录一下debug-SpringMVC的执行流程源码,做一下总结,今天终于有机会记录一下SpringMVC执行流程同样我还是建议打开源码一起debug看!!!1、流程图执行图更详细一点:2、基于版本SpringBoot:2.4.13、前置的测试代码这里debug只涉及到co原创 2021-12-19 18:05:28 · 957 阅读 · 7 评论 -
阿昌教你看懂mybatisplus的sql执行流程
前言前置版本:MybatisPlus3.0.5前些日子写了两篇关于mybatis相关的文章,一篇是《sqlSessionFactory的创建过程》,一篇是《sql语句的创建过程 》,看这篇,建议把上面两篇看了再来 (。・∀・)ノ゙这一次打算记录一下sql语句的执行流程,同样还是建议打开源码一起翻着对比看比较好前戏我们以如下代码开始入手:↓public boolean isExist(VisitInfoTable item) { return baseMapper.selectC原创 2021-11-26 16:52:06 · 3101 阅读 · 1 评论 -
阿昌教你看懂mybatisplus的sql语句的创建过程
前言前置版本:MybatisPlus3.0.5前些日子,阿昌写过一篇【mybatisplus的SqlSessionFacotry的创建过程】的菜鸡文章,这里我打算再记录一篇,关于mybatisplus的sql语句的创建过程。前戏同样,学过springboot的人都知道,如果要整合什么框架,肯定要去找XXXAutoConfiguration。在MybatisPlusAutoConfiguration中有如下,对SpringIoc容器进行注入sqlSessionFactory在这个方法中,他原创 2021-11-23 18:36:55 · 4391 阅读 · 7 评论 -
阿昌教你看懂mybatisplus的SqlSessionFacotry的创建过程
前言前置版本:MybatisPlus3.0.5这几天阿昌又开始研究mybatisplus的内容,我就先开始研究mybatis在springboot的环境下,是如何进行类加载注入的。这里就记录下自己学习到的内容。感谢各位大佬的观看 •̀ㅂ•́)و!正文在一开始,对于看Springboot的内容,必然去找XXXXAutoConfiguration的自动配置类。那我们就去mybatisplus的源码,去找MybatisPlusAutoConfiguration那一来到这个类,我们必然看他头原创 2021-11-11 12:23:14 · 1583 阅读 · 1 评论 -
Day141.项目简介、基础环境搭建 -SSM_CRUD
一、项目简介1、SSM-CRUDSSMSpring+SpringMVC+MyBatisCRUDCreate(创建)Retrieve(查询)Update(修改)Delete(删除)2、功能点分页数据校验jquery前端校验+JSR303后端校验ajaxREST风格的URI;使用HTTP协议请求方式的动词,来表示对资源的请求操作【GET(查询)、POST(新增)、PUT(修改)、DELETE(删除)】3、技术点基础框架—SSM(Spring+Spri原创 2020-12-23 14:21:40 · 352 阅读 · 0 评论 -
Day143.项目总结 -SSM_CRUD
总结在结束之际用maven打了一个package后发现自己项目运行不起来了,经过从今天下午6点到10点,四个小时,面向百度查询问题最后没有查到原因,自己摸索问题出在:maven打包时会再运行Test测试,我在Test中有逆向工程的生成代码因为再生成了逆向代码,发现自己的所有mapper.xml和bean对象全部被覆盖了出现大量的重复id代码,和代码被掩盖解决方式:仔细删去重复的代码,重新写入bean对象的注解和功能即可解决一、CRUD新增模态框修改模态框原创 2020-12-25 22:38:38 · 428 阅读 · 0 评论 -
Day142.页面查询-ajax -SSM_CRUD
查询-ajax1、index.jsp页面直接发送ajax请求进行员工分页数据的查询2、服务器将查出的数据,以json字符串的形式返回给浏览器3、浏览器收到json字符串,可以使用js对json信息解析,使用js通过dom增删改改变页面4、返回json,就可以实现客服端的无关性(不管是浏览器还是安卓都可)一、返回son数据设置导入jackson包pom.xml<!--导入jackson包,自动返回json字符串支持--><dependency> <原创 2020-12-24 15:08:02 · 269 阅读 · 0 评论 -
Day141.CRUD查询-通过请求转发html来实现 -SSM_CRUD
一、CRUD-查询-通过请求转发html来实现1、查询思路1、访问index.jsp页面2、index.jsp页面发送出查询员工列表请求3、EmployeeController来接受请求,查出员工数据4、来到list.jsp页面进行展示5、pageHelper分页插件完成分页查询功能2、实现①index.jspindex.jsp页面发送出查询员工列表请求<%@ page contentType="text/html;charset=UTF-8" language="java"原创 2020-12-23 18:30:40 · 310 阅读 · 0 评论 -
Day143.页面修改&删除 -SSM_CRUD
一、页面修改1、修改页面模态框2、修改逻辑1、点击编辑2、弹出用户修改模态框(显示用户信息)3、修改需要的信息4、点击更新,完成用户修改3、员工修改模态框接受前端ajax请求的处理器 @ResponseBody @RequestMapping(value = "/emp/{id}",method = RequestMethod.GET) public MSG getEmp(@PathVariable("id")Integer id){ Emplo原创 2020-12-25 22:04:00 · 342 阅读 · 0 评论 -
Day143.页面新增-ajax -SSM_CRUD
【一】、新增功能的构建点击页面新增后会弹出1、新增功能的逻辑1、在index.jsp页面点击"新增"2、弹出新增对话框3、去数据库查询部门列表,显示在对话框中4、用户输入数据,并进行校验jquery前端校验,ajax用户名重复校验,重要数据(后端校验(JSR303),唯一约束)5、完成数据保存2、小问题遇到的问题调换jquery和bootstrap引入的顺序也无法解决问题了解到bootstrap3.3.7配合jquery1.7.1版本不适配,无法弹出模板框,所有需要将j原创 2020-12-25 13:30:27 · 327 阅读 · 0 评论 -
Day383&384&385.注解编程 -Spring5
注解编程⼀、注解基础概念1. 什么是注解编程指的是在类或者⽅法上加特定的注解(@XXX),完成特定功能的开发。@Componentpublic class XXX{}2. 为什么要讲解注解编程注解开发⽅便代码简洁 开发速度⼤⼤提⾼Spring开发潮流Spring2.x引⼊注解 Spring3.x完善注解 SpringBoot普及 推⼴注解编程3. 注解的作⽤替换XML这种配置形式,简化配置替换接⼝,实现调⽤双⽅的契约性通过注解的⽅式,在功能调⽤者和功能原创 2021-09-07 22:29:49 · 902 阅读 · 0 评论