SSM框架
水的精神
一件事,要么不做,要么做到极致。
展开
-
spring 的相关的事务失效的问题总结
这一个问题,真的是很有意思。之前不了解的时候觉得会用就行了。但是真的不知道里边这么多坑。不过这些坑都真的很有意思。它推着你去了解底层。推着你看源码,了解实现原理。 也是因为我在最近的开发中遇到了一些问题,自己进行排查,然后谷歌了很多很多的文章。这篇文章算是一个总结吧。希望可以做到的是,关于事务失效的问题看这一篇文章就够了。 尽可能的做到全一点,篇幅可能会大一点。这里为了省事,一些...原创 2020-04-03 13:32:29 · 387 阅读 · 0 评论 -
以前文章总结一下事务的原理
今晚学习了网易微专业的公开课,讲的是事务的相关的问题。这里写一篇文章记录一下。# #先看一下一个简单版的spring的事务原理全貌图 对于事务问题,之前都是一知半解。 之前别人一提到事务,我就想到了ACID。我知道开始事务的注解,知道想要使用注解的时候,就在service层类上添加一个注解@Transactional。我以为这样我就知道事务了。但是我不知道我...原创 2020-04-03 00:03:52 · 238 阅读 · 0 评论 -
利用 spring 的 bean 和策略模式优雅的写出可扩展的代码
代码的的其中有个设计原则就是:开闭原则。 我们在开发过程中经常会遇到这样的问题:就是往往需要有不同的计算方案,比如促销方案,打折。 这个例子就是通过利用spring的对bean的管理,利用面向接口编程,写出来易于遵守开闭原则的代码,不再使用if else 或者swatch# #第一步是定义一个计算的接口# #第二步是将每一种计算方案来实现这...原创 2020-02-15 17:07:12 · 530 阅读 · 0 评论 -
spring 源码之 IOC 容器的初始化过程
学习spring源码真的是一件痛并快乐的刺激的事。昨天听了别人的视频,任然是一头雾水,层次不一样,就不太容易接受。直接打开spring源码,断点调试,有点难度。于是又捧起书,《深入理解spring技术内幕》,先学习一些里边的概念,设计模式。再回头自己撸源码比较好一点。 展开学习,和记录。我尽量少用术语,用故事,或者白话,来讲出来理解的内容。# #spring的核心内容就是...原创 2020-02-15 16:26:17 · 355 阅读 · 0 评论 -
如何从数据库中取一条记录的某几个字段
先抛出这个疑问,为什么要取几个字段,直接用实体类接受不是很方便吗?select * fromuser;可以看这个语句,假如user表只有两个字段,那没问题。如果user表有100+个字段呢?我们明明只用其中某几个,每次都取100+个字段出来,然后再用某几个,这会造成资源浪费的。说白了,就是select *fromuser; 这个语句在阿里巴巴开发手册中明...原创 2019-11-30 00:51:22 · 1677 阅读 · 0 评论 -
爱上Spring源码 (2019.7.30)
spring中有很多好的思想,以及设计模式。从今天起,这段时间要学习一下spring的源码。 spring源码是最值得我们阅读的源码,因为里边大量的使用了设计模式。读源码不仅仅是为了提升逼格,可以跟别人说我度过源码,而是应该从源码中真的学到东西,对自己今后的coding有帮助才算学到东西。看看别人实现一个需求是怎么做到的,考虑下自己是怎么做的。自己可以提升的地方在哪里,不足的地方...原创 2019-07-31 19:35:00 · 517 阅读 · 0 评论 -
揭秘 web.xml 文件,理清来龙去脉
学过web基础,学过SSM框架,SSH框架,我们对web.xml文件应该都不陌生,最起码都能看到这个文件的存在。特别是看了spring源码以后,我更加执着与这个文件了,在我看来,一切的一切都从这个配置文件开始。大家有没有想过这个问题,为啥你引入了框架的jar包,就能给你加载进去呢,你引入了那么多jar包,为啥能找到正确的jar包加载呢? 另外web.xml文件都干了什么?...转载 2019-08-04 09:36:21 · 300 阅读 · 0 评论 -
根据 springMVC 与 struts2的不同点,说说为什么选择使用springMVC框架
现在使用springMVC的企业是比较多的。明明都是控制层的框架,struts2在springMVC前边,为啥springMVC现在如此受欢迎呢。 下边我从两者的差异,讲一下为啥用springMVC而不用struts2了。 参考文章:springMVC 与 struts2 最大的区别 # #第一点不得不提的是两者的实现机制,springMVC使用servl...原创 2019-07-29 07:34:52 · 521 阅读 · 0 评论 -
(2019.7)springMVC 如何获取原生的API
其实这个很简单:@RequestMapping("test") public String getRequestDemo(HttpServletRequest request){ HttpSession session= request.getSession(); return "success"; }想要什么,就在参数的地方写就可...原创 2019-07-12 16:28:48 · 243 阅读 · 0 评论 -
(2019.7)springMVC——参数绑定
所谓参数绑定就是将请求传过来的参数进行相关的处理,这是前后端进行数据交互很重要的一部分。# # 首先是简单的参数传递 比方说我发这这样的请求:http://localhost:8080/user/paramTest?username=zhangshan&password=123456 可以看到的是我传了两个参数,分别是username和password,如果我的cont...原创 2019-07-12 16:20:06 · 219 阅读 · 0 评论 -
SpringMVC源码分析
原文地址:https://juejin.im/post/5aaf4c556fb9a028b547af83 这部分内容刚开始学千万不要着急,慢慢来。换一种心态和学习方法,比方说这篇文章看起来蛮长的,但是可以循序渐进。从头开始慢慢的一点一点的看。会发现也没有那么难了。SpringMVC源码分析系列(精简)目录SpringMVC源码分析系列(精简)启动过程sprin...转载 2019-07-28 16:21:03 · 205 阅读 · 0 评论 -
spring容器和springMVC容器,之间的联系
这篇文章讲明白了spring容器,springmvc容器的区别与联系。虽然没有直接从源码进行讲解,但是降低了文章的理解难度。 这篇文章包括spring启动过程。 另外作者指出一些常见的spring和springMVC混乱配置导致的错误。 非常推荐大家读!在Spring整体框架的核心概念中,容器的核心思想是管理Bean的整个生命周期。但在一个项目中,Spring容...转载 2019-08-08 21:19:05 · 335 阅读 · 0 评论 -
spring 源码中的 xml配置文件解析过程详解
本文大部分内容是来源于原文:https://blog.csdn.net/u013510838/article/details/75092612 原文写的很好,但是我想加入一点自己的理解,为了不混淆原文,自己的理解我用橙色来标识。没有用橙色标识的代表是原文内容。 另外我把一些重要的字眼给标红了。1 介绍 创建并初始化spring容器中,关键一步就是读取并解析sp...原创 2019-08-11 08:56:05 · 1419 阅读 · 2 评论 -
爱上 Mybatis源码 (2019-08-11)
第一次学习源码,自己很难吃透源码,也做不到直接撸源码,一句一句的解析。先学习一下别人的文章,吃透源码的流程,日后有能力了再逐句撸。 源码的乐趣就在于首先能明白为什么我在用框架的时候要这样用,以及明白整个流程以后,帮助我们排错,避免问题。# #总览Mybatis源码结构https://blog.csdn.net/u013510838/article/details/79...原创 2019-08-11 17:37:27 · 256 阅读 · 0 评论 -
Restful 风格
写之前也看了看别人的文章,觉得写的都好官方,明明就很简单的一件事。 # # 什么是 Restful风格 我的理解就是一句话:跟去HTTP请求方式区分对资源的CRUD操作。 # #用一个表格来解释什么叫根据HTTP请求方式 也就是说,之前发送一个getEmp代表查询操作,Restful就是用get请求就告诉后台我要做获取操作,你去给我查询把,...原创 2019-08-11 19:48:38 · 167 阅读 · 0 评论 -
spring 中的 Bean 相关的思考
我们都知道spring中最精髓的地方是就是IOC控制反转。也就是说spring对Bean的管理。 我就是单纯的好奇:Bean是怎么加载的,怎么初始化的 Bean是什么时候创建的 Bean是怎么管理的 ...原创 2019-08-12 10:22:10 · 168 阅读 · 0 评论 -
Spring 源码中的 BeanDefinition 是什么
一起来看看BeanDefinitionBean的定义主要由BeanDefinition来描述的。作为Spring中用于包装Bean的数据结构,今天就来看看它的面纱下的真容吧。首先就是BeanDefinition的类定义:public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement...转载 2019-08-12 10:35:38 · 433 阅读 · 0 评论 -
Spring 源码之 IOC实现
https://blog.csdn.net/u011659172/article/details/51452090在这篇文章里边:又一个BeanDefinition,强列建议打开下边的链接看看https://blog.csdn.net/star1210644725/article/details/99290830...原创 2019-08-12 11:10:07 · 177 阅读 · 0 评论 -
SpringData JPA save和saveAndFlush方法 以及实际应用的几个问题
最近的工作持久层是用spirngDataJPA来做的 这篇文章主要解决两个问题,第一个是save方法,如果是更新操作,会丢失之前原来已经有的字段的值。第二个问题是使用save方法并不能拿到我们想要的id的问题。# #首先一个常用的方法save方法这个方法可以更新,也可以插入一条数据,但是在使用前我们要搞明白save的具体的工作机制。 具体...原创 2019-09-06 08:36:09 · 10420 阅读 · 1 评论 -
(2019.7)springMVC 之 解决中文乱码问题
关于中文乱码问题,我觉得有两个方面。前端和后端。所谓前端,就是你的页面,显示出来中文乱码。后端乱码问题指的是前台将数据传到后台,后台读取出来是乱码的。 # # 前端乱码案例:这是一个不会乱码的页面。<%@page contentType="text/html;charset=UTF-8" language="java" %><html>...原创 2019-07-12 15:27:58 · 242 阅读 · 0 评论 -
(2019.7)能让springMVC跑起来的条件
springMVC是用来负责管理页面和后台的交互的。他就像是一个管家一样。什么事先经过我,我我虽然不能处理,但是我能给你找人处理。这里我把springMVC称为是老管家。 # # 老管家都干了什么事呢? 首先是将前端的请求页面拦截下来,因为我们在前端URL地址栏输入请求地址,是希望后台给我们处理的。不使用框架的话,就直接处理,但是处理起来过程有点麻烦。1. 想要让老...原创 2019-07-11 18:59:35 · 627 阅读 · 0 评论 -
java后台开发最常用的开发 中文文档在线版
自己用到的中文文档:这里做个汇总,方便自己查看。spring:https://lfvepclr.gitbooks.io/spring-framework-5-doc-cn/content/springMVC:https://www.w3cschool.cn/spring_mvc_documentation_linesh_translation/Mybatis:http...原创 2019-06-07 20:34:51 · 2453 阅读 · 0 评论 -
springMVC注解梳理
目录一、组件型注解:二、请求和参数型注解:1.@RequestMapping2.@RequestParam3.@PathViriable4.@ResponseBody5.@CookieValue:用于获取请求的Cookie值6.@ModelAttribute7.@SessionAttributes一、组件型注解:@Component 在类定义之前添...转载 2019-06-01 10:20:18 · 232 阅读 · 0 评论 -
spring 精华整理
个人觉得这是一个涵盖了spring重要的知识点的,篇幅不算太长的文章,知识点比较全面,可以作为快餐式阅读。目录1. 一张图来说明spring2.spring的主要内容有IOC,就是控制反转,将对象的创建权交给容器去管。3.DI依赖注入4.工厂类5.bean的生命周期(不重要)5. IOC如何使用注解来开发6.spring的IOC的注解详解7.注解开...原创 2019-05-25 08:37:06 · 340 阅读 · 0 评论 -
spring 中的九种设计模式
原文:spring中涉及的九种设计模式原创 2019-05-20 17:34:33 · 351 阅读 · 0 评论 -
SSM框架和SSH框架的详细对比
最近了解到SSH框架的使用的企业越来越少了,SSM框架更受青睐,我就了解了一下两种框架体系的区别。反正都要学,现在我已经学过了SSH框架,接下来就是学SSM框架了。声明:下边的内容是我转载学习的。目录SSH和SSM定义SSH 和 SSM 的实现原理Hibernate 和 MyBatis 两种ORM框架对比总结当下流行的两种企业开发MVC开源框架,是我们Java程序猿必...转载 2018-11-06 16:59:42 · 1166 阅读 · 0 评论 -
springMVC学习笔记-02
高级参数绑定 @RequestMapping注解的使用路径映射可以是数组@RequestMapping(value={"itemList","itemList2"}) @RequestMapping可以加在类头部,用于目录分级管理为了避免名称冲突,可以使用分目录管理限定请求方法 如果同时使用post 和get 页面可能会出现乱码的问题 ...原创 2019-02-25 16:50:43 · 200 阅读 · 0 评论 -
springMVC学习笔记
为什么要学习springMVC,springMVC和struts2的比较 SpringMVC与Struts2区别 对比项目 SrpingMVC Struts2 优势 国内市场情况 有大量用户,一般新项目启动都会选用springmvc 有部分...原创 2019-02-24 10:15:46 · 170 阅读 · 0 评论 -
MyBatis-学习笔记-day01
Mybatis介绍MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。Mybatis是面向sql的持久层框架,他封装了jdbc访问数据库的过程,我们开发,只需专注于sql语句本身的拼装,其它复杂的过程全部可以交给m...原创 2018-12-25 09:20:27 · 193 阅读 · 0 评论 -
MyBatis中用到的设计模式
面试官:“谈谈MyBatis中都用到了那些设计模式?”。疯狂的蚂蚁JavaGuide本文转载自:https://dwz.cn/KFgol1De由JavaGuide整理排版。虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。目录面试官:“谈...转载 2019-06-13 18:24:45 · 8984 阅读 · 0 评论 -
Mybatis——plus
我觉得没有比官方文档更加权威了(这是我见过的最好的文档)官方文档:https://mp.baomidou.com/guide/#%E7%89%B9%E6%80%A7原创 2019-06-20 18:27:06 · 213 阅读 · 0 评论 -
学习持久层框架的开胃菜
前言:首先持久层框架是常用的。自己觉得熟悉又陌生。想通过自己的话来描述一下持久层框架。我会在这篇文章中分析出持久层框架相同的理念,和不同的实现。希望能帮到你。从最开始学习的JDBC访问数据库,我们自己建立连接,自己去写sql语句然后执行,慢慢的没人这样写了,太麻烦了。然后有人提出这样的构想,能不能用访问对象的形式来访问数据库,这就出现了框架,框架封装好sql语句,我们通过配置的形式...原创 2019-06-20 21:41:42 · 230 阅读 · 0 评论 -
(2019.7)springMVC注解 ——自己的梳理
# # 入门案例用到的注解是@RequestMapping 这个注解用处有两个,如下一个demo 比方说我这样的一个请求:http://localhost:8080/user/login很明显第一个放在了类名上边,这个称为是一级目录。第二个放在的是方法上边,目的在于配合映射器,请求和处理方法生成映射。 user对应的是一级目录,login对应的是方法上的映射。...原创 2019-07-13 10:50:42 · 189 阅读 · 0 评论 -
Mybatis——Plus 从零开始使用
也就是想用学习环境的搭建,应该怎么做。这个可以参考官方文档:https://mp.baomidou.com/guide/quickstart.html#%E5%88%9D%E5%A7%8B%E5%8C%96%E5%B7%A5%E7%A8%8B原创 2019-07-08 17:23:08 · 255 阅读 · 0 评论 -
SSM整合环境搭建+Maven+IDEA
优先推荐这个案例,真的超级详细,自己跟着一步一步做就可以了https://www.cnblogs.com/toutou/p/ssm_spring.html这篇案例做的也不错,可以看看。https://blog.csdn.net/mgsky1/article/details/80882351...原创 2019-07-08 17:15:11 · 189 阅读 · 0 评论 -
业务逻辑层的框架
struts2框架,springmvc框架到底是干啥的?干了什么总结成一句话,就是负责进行前端请求拦截,然后调用执行的方法,然后再将处理结果返回给页面去。一句话有点笼统,换个栗子来说明一下。 就拿登录而言,前端页面一点击登录按钮,就需要调用后台了,因为要到后台进行数据库的数据验证,前端页面先将这个请求传过来,以springmvc为例,springmvc来是通过servelet...原创 2019-06-24 11:36:09 · 4327 阅读 · 0 评论 -
Mybatis——plus 代码生成器
MybatisPlus给我们提供了更加强大的代码生成器# #代码生成器的简单的对比MybatisPlus给我们提供的代码生成器,不仅仅可以生成dao层,还可以生成Service层,Controller层。# #代码生成器的使用注意事项# #代码生成器的使用注意事项使用代码生成器的步骤我们自己提供一些配置文件模...原创 2019-07-07 22:06:08 · 14974 阅读 · 0 评论 -
Mybatis——plus ActiveRecord
# #简单介绍ActiveRecord# # 使用ActiveRecord准备工作 其实很简单,就是让我们实体类集成 Model (注意是mybatisPlus的) 泛型就是我们的实体类 下一步是实现Model的未实现的方法,在这个方法中,返回我们的主键# # 使用ActiveRecord进行增删改查我自己感觉...原创 2019-07-07 19:56:54 · 1102 阅读 · 0 评论 -
Mybatis——plus 条件构造器(EntityWrapper)
持久层框架解决的就是数据访问的问题。MybatisPlus是mybatis的搭档,更方便的去进行持久层的操作。在数据访问中,有一个比较大的问题是条件查询。我们在开发过程中肯定少不了的是条件查询,并且是复杂的条件查询。# #介绍一下EntityWrapper 解决复杂的带条件的操作问题,就是将条件封装到EntityWrapper中去。用到的条件参数:可以...原创 2019-07-07 19:15:57 · 5158 阅读 · 0 评论 -
springmvc之自定义拦截器
首先我们应该先让类来实现我们的接口 HandlerInterceptor第二步在xml文件中配置我们的拦截器。实现 HandlerInterceptor接口以后,需要实现三个方法。需要注意的是,我们的preHandle方法的返回值要是true再看自定义拦截器以后的方法的执行顺序(这是在只定义一个拦截器的时候):如果是两个拦截器话,...原创 2019-06-25 19:31:36 · 950 阅读 · 0 评论