Spring
文章平均质量分 64
WARGON
这个作者很懒,什么都没留下…
展开
-
JDK动态代理基础知识
可以简单的认为,动态代理就是实现在不修改源程序的基础上,对原有的类方法进行增强。其有一点要求是:要实现动态代理的类,必须实现至少一个接口。否则需要CGLIB动态代理机制。JDK的动态代理机制也是Spring AOP的底层实现方式的一种。我们来了解一下其机制:实现:实际使用方式可能多种多样,我们就按自己的来。如,下面有一个接口:UserDaopackage com.imooc....原创 2018-07-26 18:35:59 · 226 阅读 · 0 评论 -
基于AspectJ的AOP开发--XML
上回书说到注解式的操作,本文讲XML式。XML式AOP1:依赖包,和注解式相同。2:准备配置文件。和注解式相同。下面准备一个接口:package com.imooc.aspectJ.demo2;public interface CustomerDao { public void save(); public String update(); ...原创 2018-07-27 19:29:25 · 220 阅读 · 0 评论 -
SpringMVC中注解失效
遇到一种情况:配置文件中不能存在 SimpleUrlHandlerMapping这个Bean的配置,否则注解不起作用。原创 2018-08-06 00:23:39 · 1026 阅读 · 0 评论 -
SpringBoot无法注入Bean
使用SpringBoot时,不同使用Spring时使用<bean>或者<context:component-scan...>,SpringBoot中组件的扫描,默认是扫描入口类所在包及其子包下的文件夹。所以,要么入口类放在高层的文件夹下,要么在入口类上注解:@ComponentScan(basePackages = "pers.wargon.ttOrder")p...原创 2018-08-10 22:25:08 · 325 阅读 · 0 评论 -
SpringBoot的使用
创建SpringBoot项目,比普通的Spring项目(或者说是maven项目)的sources文件夹下,多三个东西:static文件夹:用来存放静态资源,如图片,js,cs文件等templates文件夹:用来存放表现层的页面。application.properties文件:SpringBoot的配置文件。(也可用yml文件来代替)。步骤:1:引入相关依赖:其他需要的依赖自行...原创 2018-08-10 23:18:41 · 153 阅读 · 0 评论 -
spring-mabatis报错:Invalid bound statement (not found)
编写Dao接口的XML文件要求: mapper.xml的namespace要写所映射接口的全称类名。 mapper.xml中的每个statement的id要和接口方法的方法名相同 mapper.xml中定义的每个sql的parameterType要和接口方法的形参类型相同 mapper.xml中定义的每个sql的resultType要和接口方法的返回值的类型相同...原创 2018-08-02 12:45:31 · 771 阅读 · 1 评论 -
Spring声明式事务处理:基于tx命名空间
声明式事务处理,就是把事务处理工作从业务方法中抽取出来,然后进行横向的织入。依赖的jar包:spring*4+spring-jdbc+spring-aop+spring-tx+aspectJweaver。这里不是很确定,加上再说。配置文件:要有tx、aop约束。数据源到然要:<bean id="dataSource" class="org.springframework.j...原创 2018-08-03 13:56:40 · 1149 阅读 · 0 评论 -
Spring-Mybatis整合开发
1:导入依赖包:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation...原创 2018-08-03 15:26:05 · 180 阅读 · 0 评论 -
解决SpirngMVC使用RESTFUL时,HiddenHttpMethodFilter无法解析enctype=“multipart/form-data类型表单隐藏的请求方法
当使用RESTFUL风格,表达的方法为非GET以及POST时,需要使用HiddenHttpMethodFilter来对隐藏的方法进行解析。通常就是直接调用getParameter方法解析出隐藏域来值,然后传给Controller就行了。但是,当表单中有文件上传时,表单实际上变为了一个输入流,需要进过特殊处理(解析)后,才能被HiddenHttpMethodFilter所识别,然后确定方法类型。...原创 2018-08-18 19:12:58 · 874 阅读 · 0 评论 -
java定时任务
java定时任务的实现有很多方式。比如,开启一个单独的线程,按照自己的规则,一直循环执行。这种方式适用于简单的任务。java还提供了定时任务相关的类。java.util.Timer和java.util.TimerTask,还有java.util.concurrent.ScheduledExecutorService。另外,开源项目Quartz实现了简单且强大的作业调度框架。使用Spri...原创 2018-08-21 22:25:30 · 194 阅读 · 0 评论 -
Spring事务处理的实现--基于底层API
引入相关的包是必须的。Spring四个核心包、Sping-jdbc包、mysql-connector-javabao配置文件:引入数据库的Bean:DriverManagerDataSource并进行驱动、url等的配置。引入JDBCTemplate的Bean:JDBCTemplate并配置其datasource属性。要使用Spring的事务管理器,引入:DataSourceTransacti...原创 2018-07-31 20:15:21 · 454 阅读 · 0 评论 -
Spring的事务处理机制
Spring 提供了处理事务的一套API。PlatFormTransactionManager接口为事务处理器的接口。三个有关事务的方法:getTransaction(TD td):TS 开启事务的方法。以事务定义为参数,返回事务状态。commit(TS ts) 提交事务的方法。以事务状态为参数。rollback(TS ts) 回滚事务的方法。以事务状态为参数。...原创 2018-07-31 19:54:00 · 517 阅读 · 0 评论 -
基于AspectJ的AOP开发--注解
在实际开发中,最常用到的是基于AspectJ的AOP开发方式。AspectJ的使用用两种方式:注解式和xml配置式。下面分别讲解。注解式:首先,引用开发包。下面列出使用Spring AspectJ所需要的完整依赖: <dependencies> <dependency> <groupId>junit</groupId...原创 2018-07-27 19:07:14 · 639 阅读 · 0 评论 -
Spring基础知识
Spring为企业应用开发提供了一个一站式的解决方案。它将各种设计模式的功能进行了实现,并且封装起来以便使用。使用Spring框架时,必须使用Spring Core Container,即Spring容器,它是Spring框架的核心机制。由org.springframework.core、org.springframework.context、org.springframework.beans...原创 2018-07-26 20:55:20 · 291 阅读 · 0 评论 -
Spring实现JDK动态代理
JDK动态代理机制已经有文章写了,这里介绍Spring中的使用:主要类:BeanPostProcessor首先是一个接口:UserDaopackage com.imooc.ioc.demo3;public interface UserDao { public void findAll(); public void save(); public voi...原创 2018-07-26 23:38:11 · 326 阅读 · 0 评论 -
Spring的Bean管理:
1:Bean实例化的三种方式:首先提到一点。只要在配置文件中正确配置的<bean>在通过配置文件生成工厂时就创建了相应的实例。在Spring容器中等待调用。 使用无参构造的方式:也就是在配置文件中配置:<bean id="aaa" class="xxx.xxx.xxxx"></bean>class指向的是一个类的全路径类名。该类必须有无参...原创 2018-07-26 23:38:33 · 316 阅读 · 0 评论 -
Spring AOP相关术语
1:Joinpoint:连接点。指的是可以被拦截的点,在Spring AOP中可以简单的理解为Bean的方法。(忽略AspectJ)2:Pointcut:切入点。指的是对哪些Joinpoint进行拦截。就是指被拦截的连接点。3:Advice:增强处理。也就是拦截到连接点后,所进行的处理。包括:前置处理、后置处理、异常处理、最终处理、环绕处理。(以及引介,在运行期为类动态添加方法或者属性,这...原创 2018-07-27 12:08:34 · 381 阅读 · 0 评论 -
Spring实现CGLIB动态代理
JDK动态代理只能适用于接口。CGLIB适用于类。首先是类:ProductDaopackage com.imooc.aop.demo2;public class ProductDao { public void save(){ System.out.println("保存商品"); } public void update(){ ...原创 2018-07-27 12:25:53 · 732 阅读 · 1 评论 -
Spring的代理知识
前面的两篇文章:Spring实现CGLIB动态代理、Spring实现JDK动态代理,是介绍Spring在底层实现代理的方式。我们使用Spring时不会手动去写这些步骤,Spring已经为我们做好了。当目标类实现了接口时,Spring会是使用JDK动态代理机制来生成的java.lang.reflect.Proxy代理类。而没有实现接口时,会使用CGLIB库来生成代理类。我们在程序开发中,一般...原创 2018-07-27 12:34:47 · 141 阅读 · 0 评论 -
Spring AOP使用
Spring按照增强处理在目标方法的位置,分为5类:1:前置处理。org.springframework.aop.MethodBeforeAdvice。在目标方法执行前进行增强处理。2:后置处理。org.springframework.aop.AfterReturningAdvice。在目标方法执行后进行增强处理。3:环绕处理。org.aopalliance.intercept.Met...原创 2018-07-27 14:06:21 · 177 阅读 · 0 评论 -
Spring自动创建代理--BeanNameAutoProxyCreator和DefaultAdvisorAutoProxyCreator
前面的文章中讲到的创建代理,在配置文件中都必须配置:ProxyFactoryBean。这虽然省掉了我们手动实现动态代理的工作,但是也很繁琐。现在有三种解决方案:1:BeanNameAutoProxyCreator:根据Bean名称创建代理2:DefaultAdvisorAutoProxyCreator:根据Advisor本身包含信息创建代理。3:AnnotationAwareAsp...原创 2018-07-27 14:43:15 · 987 阅读 · 0 评论 -
AspectJ的增强处理类型
1:@Before,前置处理,相当于BeforeAdvice2:@After Returning,后置处理,相当于After ReturningAdvice3:@Around,环绕处理,相当于MethodInterceptor4:@AfterThrowing,异常抛出处理,相当于ThrowAdvice5:@After,最终final处理,不管是否发生异常,该处理都会执行。6:@...原创 2018-07-27 16:20:44 · 497 阅读 · 0 评论 -
ApplicationContextAware
在Web应用中,Spring容器通常采用声明式方式配置产生:开发者只要在web.xml中配置一个Listener,该Listener将会负责初始化Spring容器,MVC框架可以直接调用Spring容器中的Bean,无需访问Spring容器本身。在这种情况下,容器中的Bean处于容器管理下,无需主动访问容器,只需接受容器的依赖注入即可。但在某些特殊的情况下,Bean需要实现某个功能,但该功能必...转载 2018-09-21 14:53:47 · 552 阅读 · 0 评论