
SSM框架
文章平均质量分 78
SSM框架学习笔记
Miaoshuowen
这个作者很懒,什么都没留下…
展开
-
springmvc(2)手写springmvc框架
springmvc手写框架前置阶段:DispatcherServlet初始化spring容器getBeansByTypeAware和BeanFactoryWare初始化了HandlerMapping集合初始化处理器类和url的映射关系初始化了HandlerAdapter集合1.如何编写处理器代码制定标准(接口)HttpRequestHandler接口SimpleControllerHandler接口2.如何编写处理器映射器代码BeanNameURLHandlerMappi原创 2020-05-10 23:38:50 · 337 阅读 · 0 评论 -
springmvc(1)springmvc核心概念及适配器模式
B/S下的相关概念介绍B/S:浏览器、服务器B/S是如何通信的呢?socketweb容器(http协议)—tomcat去封装了socket,实现了浏览器和服务器直接的通信,程序员不需要自己去进行socket编程了tomcat:web容器,Servlet容器tomcat说了,我只会调用Servlet接口的实现类代码。Servlet接口是JavaEE推出的web编程的服务器程序的标准接口。Servlet的实例,是由tomcat来创建的,是由程序员来编写的代码。Servlet对象什么时候被创原创 2020-05-10 20:20:11 · 402 阅读 · 0 评论 -
Spring(4.1)Spring aop 动态代理----代理对象的产生和执行流程
动态代理模式(spring默认JDK动态代理模式)jdk动态代理模式(有接口的目标对象)如何产生代理对象Object proxy =Proxy.newProxyInstance(classloader,interfaces,InvocationHandler);classloader —作用是加载jdk帮我们写出来的代理类的字节码 interfaces — 目标类的接口数组Inv...原创 2020-04-23 23:05:00 · 3328 阅读 · 0 评论 -
Spring(4)Spring循环依赖问题 And Spring Aop核心概念
spring循环依赖问题搞清楚什么是循环依赖?依赖:引用、成员变量 ClassA类---->ClassB类 ClassB类—>ClassA类依赖注入有两种注入方式:构造方法\setter方法注入循环依赖分为:构造方法setter方法循环依赖的例子class OrderService{ UserService userService; saveOrde...原创 2020-04-18 23:16:43 · 438 阅读 · 0 评论 -
Spring(3)手写Spring ioc模块(第三版)
整体思路1、读取bean.xml文件2、解析bean文件,将bean信息封装到BeanDefinition对象中加载并注册BeanDefinition流程XmlBeanDefinitionReader:整体就是负责读取Document对象XmlBeanDefinitionDocumentReader:整体就是负责BeanDefinition的注册工作解析bean标签以及自定义标签...原创 2020-04-15 23:26:38 · 329 阅读 · 0 评论 -
Spring(2)手写Spring ioc模块(第二版)
手写spring IOC模块(第二版)—面向过程基于第一版实现查询用户的功能,要求编写业务层、持久层以及使用数据源去获取连接**UserDao UserDaoImpl UserService UserServiceImpl UserBasicDataSource**spring ioc模块的V2版本基于以上需求,我们通过ioc这种控制反转的思路去优化对象的创建...原创 2020-04-09 00:05:32 · 202 阅读 · 0 评论 -
Spring(1)Spring核心理解与手写Spring ioc模块
spring核心理解spring和spring boot、springcloud等的关联和区别spring.ioSpring基础部分(IoC、DI、AOP)spring boot:更加简单自动配置起步依赖(maven依赖更加简洁)领配置文件(spring配置文件)spring framework(就是我们要学习的spring,这里面包含springmvc模块)分成很多组件...原创 2020-04-08 23:11:31 · 293 阅读 · 0 评论 -
设计模式(3)模板方法模式和策略模式
抽象模板设计模式由抽象出来的父类来编写代码中不变的部分。将变化的部分交给子类去完成。通过抽象方法让子类必须去完成抽象模板方法是遵循了里式替换设计原则,是对继承的一种优秀的使用经验例子:把大象装冰箱,分三步这是抽象模板方法设计模式中抽象出来的父类的描述方式(第一步:把冰箱门打开、第二步:把大象装进去、第三步:把冰箱门关上)具体的第二步需要先把大象XXX,然后xxx,再然后xxx...原创 2020-04-07 16:30:56 · 270 阅读 · 0 评论 -
设计模式(2.1)单例模式的实现
单例模式的实现单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。单例模式分成两种实现方式:懒汉式、饿汉式饿汉式和饿汉式饿汉式: 初始化的时候将单例对象创建出...原创 2020-04-04 23:27:37 · 303 阅读 · 0 评论 -
设计模式(2)浅谈创建型设计模式
设计模式概述设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码...原创 2020-04-03 23:01:03 · 247 阅读 · 0 评论 -
设计模式(1)七大设计原则
理解七大设计原则开闭原则七大设计原则中最根本的原则,这个原则都不遵守的话,其他的都是白扯类或者方法中的代码,要【对扩展开放】,要【对修改关闭】开闭原则使用的前提是代码已经封版,或者上线使用了为了提升代码的扩展性这也是很多公司都不允许在代码中写硬编码的原因(比如数据库的连接) public Connection getConnection(){ Class.forName("m...原创 2020-04-03 21:10:15 · 476 阅读 · 0 评论 -
Mybatis(2.2)手写mybatis核心流程3.0版本
面向对象的设计:面向对象的设计: a)类的定义 能独立描述一个信息,比如说:配置文件信息、映射文件信息、学生、老师 能独立针对描述的信息,提供对应的功能 b)类的粒度划分 根据业务(用户【VIP用户/普通用户/高端用户】) 根据经验(借鉴别人经验,要有试错精神) c)类的复用性考虑 类的拆分的 d)类的隔离性 当某些功能发生改变...原创 2020-04-02 14:07:25 · 277 阅读 · 0 评论 -
Mybatis(2.1)手写Mybatis核心流程2.0版本
手写mybatis2.0版本(面向过程)配置和代码分离,配置是XML文件,代码是使用面向过程去编写目的是使用XML来表达mybatis的全局配置信息,和业务相关的SQL映射信息 (映射文件) 其次,优化数据连接的创建(使用连接池)全局配置文件<configuration> <!-- mybatis 数据源环境配置 --> <environments def...原创 2020-03-29 19:59:25 · 402 阅读 · 0 评论 -
Mybatis(2)手写Mybatis核心流程
手写mybatis1.0版本目的是从JDBC原生代码过度到properties配置文件的阶段db.properties文件db.driver=com.mysql.jdbc.Driverdb.url=jdbc:mysql:XXXdb.username=XXXdb.password=XXXdb.sql=select * from user where username = ?publ...原创 2020-03-26 14:36:27 · 183 阅读 · 0 评论 -
Mybatis(1)分析Mybatis框架
一、mybatis知识体系mybatis框架 mybatis-generator(逆向工程) mybatis plus(简称MP)tk.mybatis(通用mapper) PageHelper 。。。二、认识Mybatis框架原理框架原理:更加利于程序员进行开发使用程序员使用持久层框架,完成CRUD操作java中的持久层框架,都是对JDBC进行的封装 pub...原创 2020-02-21 22:37:12 · 355 阅读 · 0 评论 -
Mybatis(0)- #{}和${}的区别And${}存在SQL注入问题
1、#{}和${}的区别是什么?a)、#{}和${}取值方式是不同的,提示OGNL?b)、#{}是预编译的方式、${}是动态拼接字符串的方式c)、#{}和${}传的参数是简单类型的话,它们取值的参数名称是有区别的,也就是#{}和${}中的名称 (看录播课程)d)、${}存在SQL注入问题e)、解析顺序不同(#{}和${}谁先解析的问题)f)、#{}对于参数的处理,是需要根据类型来处理,...原创 2020-02-18 22:08:18 · 333 阅读 · 0 评论