SSM
文章平均质量分 81
spring、spring mvc 、mybatis
香树
我们不生产代码,我们只是代码的搬运工
展开
-
Spring6
Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring 框架除了自己提供功能外,还提供整合其他技术和框架的能力。Spring 自诞生以来备受青睐,一直被广大开发人员作为 Java 企业级应用程序开发的首选。时至今日,Spring 俨然原创 2023-06-27 22:28:52 · 216 阅读 · 0 评论 -
MyBatis学习笔记(全)
MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。 iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。1) M原创 2022-06-04 14:26:23 · 256 阅读 · 0 评论 -
SpringMVC学习笔记(全)
MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器MVC的工作流程: 用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controlle原创 2022-06-03 22:01:19 · 218 阅读 · 0 评论 -
超详细Spring注解@Transactional的注意事项
是开启声明式事务的方法。声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。引用文章:https://www.jb51.net/article/224832.htm#_label3_0_3_0多事务方法之间相互调用,这个过程中事务是如何管理的问题(例如两个事务调用对方方法,事务该如何选择) 支持当前事务,如果不存在,就新建一个 支持当前事务,如果不存在,就不使用事务 支持当前事务,如果不存在,抛出异常原创 2022-06-02 19:43:13 · 1047 阅读 · 0 评论 -
Spring源码——IOC容器启动创建Bean和getBean
二 、什么时候创建单实例Bean的上面说明Spring启动的时候,创建IOC容器的时候就给我们创建好了单实例的Bean那么我们就debug就进入。看Spring是如何创建单实例的Bean的1、ClassPathXMLApplicationContext构造器:2、refresh() (AbstractApplicationContext)在;中我们可以看到以下信息,里面包含了XML中我们定义Bean的定义信息,说明此步是用来解析XML的;是初始化Bean的重点方法是初始化所有非原创 2022-06-02 17:41:34 · 214 阅读 · 0 评论 -
Spring事务
原子性(atomicity):“原子”的本意是“不可再分”,事务的原子性表现为一个事务中涉及到的多个操作在逻辑上缺一不可。事务的原子性要求事务中的所有操作要么都执行,要么都不执行。一致性(consistency):“一致”指的是数据的一致,具体是指:所有数据都处于满足业务规则的一致性状态。一致性原则要求:一个事务中不管涉及到多少个操作,都必须保证事务执行之前数据是正确的,事务执行之后数据仍然是正确的。如果一个事务在执行的过程中,其中某一个或某几个操作失败了,则必须将其他所有操作撤销,将数据恢复到事务执行之前原创 2022-06-02 15:14:27 · 101 阅读 · 0 评论 -
AOP面向切面编程
AOP:面向切面编程OOP:面向对象编程面向切面编程:基于OOP思想之上新的编程思想指在程序运行期间,将某段代码动态的切入到指定的方法的指定位置上进行运行这种编程方式,面向切面编程接口被代理的对象创建代理对象测试SpringAOP由以上我们就能看出JDK动态代理的缺点,就是实现麻烦,而且必须实现接口,Spring AOP的原理就是动态代理,解决了上述这些缺点Spring的配置类接口被代理的对象切面类测试细节1:容器中创建的是代理对象,而不是MyMathCalculator 对象原创 2022-06-02 00:37:41 · 283 阅读 · 0 评论 -
泛型依赖注入
案例public class Book {}public class User {}public abstract class BaseDao<T> { public abstract void save();}@Componentpublic class BookDao extends BaseDao<Book> { @Override public void save() { System.out.print原创 2022-06-01 00:53:28 · 184 阅读 · 0 评论 -
junit的@test下@Autowired为null
首先看这个傻不拉几的代码在执行@test下的方法时,junit会创建BookService 对象,但是junit没有初始化Spring容器只有在Spring容器初始化的时候,才会初始化单实例的Bean,同时给BookService 下的bookDao赋值我一开始想法是,既然junit在创建BookService 对象的时候,没有启动spring容器,那就在BookService 中定义一个 这是不对的junit在创建BookService 的对象的时候,会初始化spring容器,但是初始化spring原创 2022-06-01 00:00:48 · 2472 阅读 · 0 评论 -
IOC和DI
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录IOC(Inversion of Control):反转控制。DI(Dependency Injection):依赖注入。IOC容器在Spring中的实现ApplicationContext的主要实现类ConfigurableApplicationContextWebApplicationContextIOC(Inversion of Control):反转控制。在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容.原创 2022-05-31 23:51:05 · 112 阅读 · 0 评论 -
@Autowired的装配原理
自动装配的原理 @Autowired private BookDao bookDao;首先 Autowired先按照类型去容器中找对应的组件,因为Autowired默认是强制装配的,如果容器中没有这个类型的组件,就会报错,可以设置为不强制装配:@Autowired(required = false)如果按照类型找到了,分两种情况:如果只有一个,直接装配如果找到多个,会以变量名作为id去容器中找,找到就装配,找不到就报错(@Autowired(required = fals原创 2022-05-31 23:27:44 · 1008 阅读 · 0 评论