spring
后知后觉后海
这个作者很懒,什么都没留下…
展开
-
Spring通过工厂方法创建对象
静态工厂工厂类public class AppleFactory { public static Apple newInstance(String color) { return new Apple(color); }}xml<bean id="AppleFactory" class="cn.lee.factory.AppleFactory" factory-metho..原创 2018-10-01 21:17:37 · 1603 阅读 · 0 评论 -
环绕通知(Schema-based方式)
把前置通知和后置通知都写到一个通知中,组成了环绕通知新建类,实现MethodInterceptor(方法拦截器)接口public class MyAround implements MethodInterceptor{ @Override public Object invoke(MethodInvocation arg0) throws Throwable { System.out...原创 2018-10-07 13:58:54 · 555 阅读 · 0 评论 -
AspectJ环绕通知
AspectJ的好处是可以将所有的通知写到一个类中,二schema-based需要不同的类实现不同的接口例如public class MyAdvice { public void beforeMethod() { System.out.println("before"); } public void afterMethod() { System.out.println("afte...原创 2018-10-07 20:39:25 · 305 阅读 · 0 评论 -
AspectJ获取方法参数
切点类public class DemoService { public void demoMethod(String name, int age) { System.out.println("DemoMethod execute,name:" + name + " age:" + age); }}xml<bean id="demo" class="com.lee.s...原创 2018-10-07 23:14:02 · 1576 阅读 · 0 评论 -
使用注解实现AOP
xml头文件中加入:xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/sprin...原创 2018-10-08 10:53:35 · 123 阅读 · 0 评论 -
cglib动态代理
导入jar包可以从mybatis的lib中找到asm-x.x.x.jar和cglib-x.x.x.jarcglib的优缺点优点:基于字节码,生成真实对象的子类,运行效率高于JDK动态代理不需要实现接口缺点:非JDK功能,需要额外导入jar包使用spring aop时,只要出现Proxy与真实对象转换异常,需要加上<aop:aspectj-autoproxy proxy-...原创 2018-10-08 15:18:34 · 106 阅读 · 0 评论 -
schema-based实现方法的参数说明
AfterReturningAdvicepublic void afterReturning(Object arg0, Method arg1, Object[] arg2, Object arg3) throws Throwable {}arg0是切点方法的返回对象,arg1就是切点方法,arg2是切点方法的输入参数,arg3是执行方法的对象测试代码public class MyAfte...原创 2018-10-09 16:16:19 · 445 阅读 · 0 评论 -
Spring自动注入
注意,注入的是bean标签下property的name与另一个beasn的id相同时,可以省略例如当spring整合mybatis时&amp;lt;bean id=&quot;dataSource&quot; class=&quot;org.springframework.jdbc.datasource.DriverManagerDataSource&quot;&amp;gt; &原创 2018-10-09 17:04:08 · 426 阅读 · 0 评论 -
Spring加载属性文件(自动加载优先级问题)
正常情况下,spring整合mybatis的配置文件的dataSource部分如下 &amp;lt;bean id=&quot;dataSource&quot; class=&quot;org.springframework.jdbc.datasource.DriverManagerDataSource&quot;&amp;gt; &amp;lt;property name=&am原创 2018-10-09 21:43:45 · 2732 阅读 · 1 评论 -
声明式事务
编程式事务:指的是由程序员编写事务控制代码,包含事务的提交与回滚等。声明式事务:事务控制代码已经由Spring写好,程序员只需要声明出哪些方法需要进行事务控制和如何进行事务控制。声明式事务都是针对ServiceImpl类下的方法的事务管理器是基于通知(advice)的Service接口public interface UsersService { public int insert(U...原创 2018-10-09 23:02:36 · 280 阅读 · 0 评论 -
spring事务隔离级别
在多线程或并发访问下如何保证访问到的数据具有完整性脏读。一个事务A读取另一个事务B中未提交的数据,另一个事务中数据可能进行了改变,此时A事务读取的数据可能和数据库中的数据不一致,此时认为数据是脏数据,读取脏数据的过程叫做脏读。不可重复读(主要针对的是某行数据(或者是行中的某列),主要针对的操作是修改操作,两次读取在同一事务中)。当事务A第一次读取事务后,事务B对事务A读取的数据进行修改,事务...原创 2018-10-10 12:55:26 · 100 阅读 · 0 评论 -
SpringMVC重要组件
1 DispatchServlet:前端控制器,接收所有请求(如果配置“/”,则不包括jsp)2 HandlerMapping: 解析请求格式,判断希望执行那个具体的方法。3 HandlerAdapter:负责调用具体的方法。4 ViewResovler:视图解析器,解析结果,准备跳转到具体的物理视图。...原创 2018-10-10 13:42:45 · 410 阅读 · 0 评论 -
Spring常用注解
@Component 创建类对象,相当于配置<bean/>@Service 与 @Component 功能相同,建议写在ServiceImpl类上@Repository 与 @Component 功能相同,建议写在数据访问层上@Controller 与 @Component 功能相同,建议写在控制器类访问层上@Resource (javax自带注解),默认按照byName注入,...原创 2018-10-10 16:08:06 · 154 阅读 · 0 评论 -
AOP中scheme-base方式异常通知
1 新建类,实现ThrowsAdvice接口必须自己写方法,必须叫做afterThrowing用两种参数方式,(1个参数或4参)public class MyThrow implements ThrowsAdvice{//方法1 public void afterThrowing(Exception ex) throws Throwable{ System.out.println("...原创 2018-10-07 13:23:09 · 170 阅读 · 0 评论 -
AOP中AspectJ方式异常通知
1 只有在切点报异常才能出发异常通知2 在spring中AspectJ与scheme-base方式都提供了异常通知方法3 实现步骤3.1 新建类public class MyThrowAdvice { public void throwMethod(Exception e1) { System.out.println("thorw" + e1.getMessage()); }}...原创 2018-10-07 12:49:16 · 907 阅读 · 0 评论 -
spring别名
方法一 用namexml(name可以用空格、逗号和分号分割) <bean id="apple" name="apple1 apple2,apple3;apple4" class="cn.sxt.bean.Apple"> <property name="color" value="red"></property&am原创 2018-10-01 21:49:22 · 658 阅读 · 0 评论 -
spring导入(关联)xml
&lt;import resource="beans.xml"/&gt;原创 2018-10-02 09:45:24 · 254 阅读 · 0 评论 -
DI数组Array、列表List、集合Set、映射Map、Null空注入
实体类(分别有List/Array/Set属性)public class Books { private List&amp;lt;String&amp;gt; favorite; private String[] like; private Set&amp;lt;String&amp;gt; xihuan;xml&amp;lt;?xml version=&quot;1.0&am原创 2018-10-02 10:25:11 · 409 阅读 · 0 评论 -
Spring命名空间注入
p命名空间注入需要有set方法需要添加约束xmlns:p="http://www.springframework.org/schema/p"xml配置文件&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://w原创 2018-10-02 11:21:20 · 602 阅读 · 0 评论 -
Spring自动装配
byNamepublic class Hello { private String name; private Apple hongFuShi;其中Apple也是一个实体类public class Apple { private String color; xml文件 <bean id="hongFuShi" class="cn.sxt.bean.Apple"> ...原创 2018-10-03 15:48:22 · 79 阅读 · 0 评论 -
静态代理和JDK动态代理
静态代理1 静态代理角色分析抽象角色——一般为接口或抽象类真实角色——被代理的角色代理角色——代理(依赖)真实角色(一般会有附属操作)2 使用静态代理的好处使得真实角色处理处理的业务更加纯粹,不在关注其他公共的事务公共业务由代理来完成——实现业务的分工公共业务发生扩展时变得更加集中和方便3 使用静态代理的缺点多了代理类,增加了工作量,开发效率低4 代码抽象角色...原创 2018-10-03 19:17:28 · 95 阅读 · 0 评论 -
Spring整合Mybatis
导入jar包(mybatis所有jar包,Spring基本jar包,spring-jdbc,spring-tx,spring-aop,spring整合mybatis的包);编写spring配置文件applicationContext.xml&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&原创 2018-10-04 16:36:24 · 127 阅读 · 0 评论 -
javax.servlet.GenericServlet.getServletContext(GenericServlet.java:125)
今天遇到javax.servlet.GenericServlet.getServletContext(GenericServlet.java:125)ServletContext sc = getServletContext(); 会报这个错误 有2个原因:public void init(ServletConfig config) throws ServletExce...转载 2018-10-04 16:38:13 · 694 阅读 · 0 评论 -
Spring MyBatis XML文件头 log4j.properties
Spring&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins原创 2018-09-27 16:41:22 · 318 阅读 · 0 评论 -
AOP常用概念
面向切面编程是什么?在程序原有纵向执行流程中,针对某一个或某一些方法添加通知,形成切面的过程就叫做面向切面编程。原有功能:切点,pointcut前置通知:在切点之前执行的功能,before advice后置通知:在切点之后执行的功能,after advice如果切点的执行过程中,会出发异常通知,throws advice所有功能总称叫切面织入:吧切面嵌入到原有的功能的过程j...原创 2018-10-05 18:32:13 · 148 阅读 · 0 评论 -
实现
前置通知实现MethodBeforeAdvice接口重写before方法public class BeforeAdvice implements MethodBeforeAdvice{ @Override public void before(Method method, Object[] args, Object target) throws Throwable { System...原创 2018-10-05 20:45:56 · 117 阅读 · 0 评论 -
Spring创建对象
通过无参构造器实体类,并且生成set方法public class Hello { private String name; public void setName(String name) { this.name = name; } public Hello() { System.out.println(&amp;amp;quot;我被无参构造器创建了&amp;amp;quot;); } public Hello(Strin...原创 2018-09-27 21:35:01 · 489 阅读 · 0 评论 -
Spring容器和SpringMVC容器的关系
Spring容器与SpringMVC容器是父子关系------ 父------------------------子SpringMVC容器可以调用Spring容器原创 2018-10-10 16:28:16 · 280 阅读 · 0 评论