- 博客(19)
- 收藏
- 关注
原创 web中斜杆的意义
web 中 / 斜杠的不同意义在 web 中 / 斜杠 是一种绝对路径。/ 斜杠 如果被浏览器解析,得到的地址是:http://ip:port/,即站点的根目录<a href="/">斜杠</a>/ 斜杠 如果被服务器解析,得到的地址是:http://ip:port/工程路径,工程路径如下:关于前端页面(jsp/html)路径前面加"/“与不加”/"的区别如在jsp页面引入js时候使用以下两个路径:<script type="text/javasc
2020-07-23 22:16:32 376
原创 声明式事务和基于xml配置的事务
<!-- 配置声明式事务 1)、Spring中提供事务管理器(事务切面),配置这个事务管理器 2)、开启基于注解的事务式事务;依赖tx名称空间 3)、给事务方法加注解 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 事务管理器要能控制事务,其实是相对于控制住Conne
2020-07-23 15:18:40 186
原创 事务的隔离级别
一、数据库事务并发问题假设现在有两个事务:Transaction01和Transaction02并发执行。脏读[1]Transaction01将某条记录的AGE值从20修改为30。[2]Transaction02读取了Transaction01更新后的值:30。[3]Transaction01回滚,AGE值恢复到了20。[4]Transaction02读取到的30就是一个无效的值。不可重复读[1]Transaction01读取了AGE值为20。[2]Transaction02将AGE值修
2020-07-22 18:14:35 272
原创 Spring事务的传播行为
Spring事务的传播行为简介当事务方法被另一个事务方法调用时,必须指定事务应该如何传播。例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行。事务的传播行为可以由传播属性指定。Spring定义了7种类传播行为。①事务传播属性可以在@Transactional注解的propagation属性中定义。②有事务的业务逻辑,容器中保存的是这个业务逻辑的代理对象@Servicepublic class BookService { @Autowired Boo
2020-07-22 17:46:03 234
原创 AOP底层_动态代理
1、 对于实现了接口的被代理对象而言,AOP进行切面编程,会利用jdk的动态代理完成代理对象的生成,实际上容器启动为MyMathCalculator创建的对象是一个代理对象class com.sun.proxy.$Proxy12,所以不能用本类MyMathCalculator.class从容器中获取,由于代理对象和被代理对象共同实现了接口,所以根据类型获取代理对象的话要根据实现的接口类型获取,2、 对于没有实现接口的被代理对象,IOC容器中存在的是class com.atguigu.impl.MyMath
2020-07-21 22:23:18 194
原创 IOC容器初始化创建单实例对象源码分析
Spring(IOC)IOC:(Inversion(反转) Of Control):控制反转; 控制:资源的获取方式; 主动式:(要什么资源都自己创建即可) BookServlet{ BookService bs = new BookService();
2020-07-21 20:25:03 275
原创 SpringAOP04
基于配置的AOP<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www
2020-07-17 17:09:08 116
原创 SpringAOP03_2
环绕通知环绕通知@Aspect@Componentpublic class LogUtils { /** * @throws Throwable * @Around:环绕 :是Spring中强大的通知;顺序正常 * @Around:环绕:动态代理; * try{ * //前置通知 * method.invoke(obj,args); * //返回通知 * }catch(e){ * //异常通知 * }finally{
2020-07-17 16:52:30 486
原创 SpringAOP03_1
AOP细节——抽取可重用的切入点表达式@Aspect@Componentpublic class LogUtils { /** * 告诉Spring每个方法都什么时候运行; * try{ * @Before * method.invoke(obj,args); * @AfterReturning * }catch(e){ * @AfterThrowing * }finally{ * @After * } * * 5个通知注解
2020-07-17 15:52:58 151
原创 SpringAOP02_2
切入点表达式和切入点/** * 如何将这个类(切面类)中的这些方法(通知方法)动态的在目标方法运行的各个位置切入 * @author lfy * */@Aspect@Componentpublic class LogUtils { /** * 告诉Spring每个方法都什么时候运行; * try{ * @Before * method.invoke(obj,args); * @AfterReturning * }catch(e){ * @Af
2020-07-17 15:16:19 111
原创 SpringAOP01(动态代理的java实现)
动态代理接口类package com.czl.inter;public interface Calculator { public int add(int i, int j); public int sub(int i, int j); public int mul(int i, int j); public int div(int i, int j);}接口实现类(被代理类)public class MyMathCalculator imple
2020-07-17 15:00:37 104
原创 SpringAOP02_1
AOP实现日志切入AOP:(Aspect Oriented Programming)面向切面编程;OOP:(Object Oriented Programming )面向对象编程;面向切面编程:基于OOP基础之上新的编程思想;指在程序运行期间,将某段代码动态的切入到指定方法的指定位置进行运行的这种编程方式,面向切面编程;场景:计算器运行计算方法的时候进行日志记录;加日志记录:1)、直接编写在方法内部;不推荐,修改维护麻烦; 日志记录:系统的辅助功能; 业务逻辑:(核心功能) 耦合;
2020-07-17 14:53:24 119
原创 SpringIOC04
泛型依赖注入public class BaseService<T> { //因为Spring中可以使用带泛型的父类类型来确定这个子类的类型 //所以在Spring初始化的时候,在IOC容器中BookDao继承了 BaseDao<Book>,BookDao的父类是BaseDao<Book>,实际上BookDao在IOC容器中是BaseDao<Book>类型 //在IOC容器中UserDao继承了 BaseDao<User>,
2020-07-17 13:40:11 100
原创 SpringIOC03
public class IOCTest { ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml"); /** * 使用注解加入到容器中的组件,和使用配置加入到容器中的组件行为都是默认的一样的。 * 1、组件的id默认就是组件的类名首字母小写 * @Repository("bookdaoHaha)//修改id * p
2020-07-17 01:18:35 152
原创 SpringIOC02_3
为自定义类型赋值public class Person { //基本类型直接使用 //<property name="lastName" value="小花"></property>自动的进行类型转换; private String lastName = "小明"; private Integer age; private String gender; private String email; private Double salary; private
2020-07-17 01:18:22 59
原创 SpringIOC02_2
引用外部属性文件<!--实验12:引用外部属性文件★依赖context名称空间 --> <!-- 数据库连接池作为单实例是最好的;一个项目就一个连接池,连接池里面管理很多连接。连接是直接从连接池中拿 --> <!-- 可以让Spring帮我们创建连接池对象,(管理连接池) --> <!--property-placeholder加载外部配置文件 固定写法classpath:,表示引用类路径下的一个资源--> <context:prope
2020-07-17 01:18:08 86
原创 SpringIOC02_1
创建带有生命周期方法的bean/** *单例: Bean的生命周期 * (容器启动)构造器---->初始化方法---->(容器关闭)销毁方法 *多实例: * 获取bean(构造器--->初始化方法)--->容器关闭不会调用bean的销毁方法 * Spring有一个接口:后置处理器:可以在bean的初始化前后调用方法; 无论bean是否有初始化方法;后置处理器都会默认其有,还会继续工作; *后置处理器: * (容器启动)构造器------后置处理器b
2020-07-17 01:17:52 90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人