![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
dimples_qian
这个作者很懒,什么都没留下…
展开
-
spring初入门的一些问题----二
前文我们说到了创建一个bean.properties文件,然后采用Class.forName("").newInstance()的方法来创建对象,但这样创建有个弊端,就是我们每次创建出来的对象都是新的,如下:这是bean工厂:package com.dimples.util;import java.util.ResourceBundle;public class MyBeanFa...原创 2018-07-28 15:53:41 · 116 阅读 · 0 评论 -
spring注解2----spring新注解
上篇我们说了生成bean的注解,注入属性值的注解等等,但是bean.xml中还剩部分内容:<context:component-scan base-package="com.dimples"></context:component-scan>和QueryRunner等的配置这部分内容我们一般放在SpringConfiguration中实现:@Component...原创 2018-08-06 19:21:21 · 360 阅读 · 0 评论 -
spring注解3----@import
上篇中我们使用SpringConfiguration类来作为spring的配置类,那现在我们希望将其中关于数据库的配置信息分离到另一个JdbcConfig类中,这时候该怎么读取呢?一:扫描JdbcConfig类所在的包@ComponentScan({"com.dimples","com.utils"})public calss SpringConfiguration{}Jdbc...原创 2018-08-06 20:19:21 · 267 阅读 · 0 评论 -
spring注解4----@PropertySource
某些值我们需要写在配置文件中,比如driver、url、username、password的值,那如何将这些值读取到呢?这时候我们用@PropertySource这个注解。首先配置文件我们这么写了:driver=com.jdbc.mysql.driverurl=localhost://3306/testDBmyname=hahahapassword=123456然后我们在Spr...原创 2018-08-07 13:06:05 · 190 阅读 · 0 评论 -
@Qualifier用在形参上
@Bean(name="dog") public Dog getDog(){ System.out.println(driver); System.out.println(url); System.out.println(username); System.out.println(password); return new Dog(); } @Bea...原创 2018-08-07 13:39:39 · 6140 阅读 · 0 评论 -
spring整合JUnit
单元测试的注解@Test的作用,其实就是把当前类实例化,然后放在一个main函数当中执行!我们在执行单元测试spring相关项目的时候,希望能自动加载spring容器而不用每个方法都手动加载一次,这时候我们就需要用到spring整合JUnit的jar包了。一:导入spring-test-4.2.4.RELEASE.jar这个jar包,在spring的开发包中就有。二:JUnit默认是不关心...原创 2018-08-07 14:30:59 · 203 阅读 · 0 评论 -
基于接口的动态代理
所谓代理,就是不改变原有类代码的基础上,对其方法进行增强。这里以演员举例对其进行说明。演员有出演角色的行为,他们能演戏,但他们都会与经纪公司签约,而剧组找人都是找经纪公司,向公司提供一个标准。这个过程中,演员就是原生类,经纪公司就好比是在做代理这件事。经纪公司给他们公司的演员对外宣称,低于10000的戏不演,这就是在对演员的动作进行增强。代码如下:public interface IActo...原创 2018-08-07 20:38:36 · 2201 阅读 · 0 评论 -
基于子类的动态代理
要求:被代理类不能是final的,因为代理对象会是它的子类提供者:第三方CGLib涉及的类:Enhancer创建代理对象的方法:create(Class,Callback);例子:首先导入第三方jar包:asm-3.2.jar、cglib-2.1.90.jarpublic void subProxy(){ final MyActor actor = new MyAct...原创 2018-08-08 12:46:32 · 862 阅读 · 0 评论 -
AOP相关术语
连接点:就是业务层所有方法切入点:就是被检测到需要增强的方法通知:就是具体增强的内容,分为前置通知、后置通知、异常通知、最终通知、环绕通知,具体见下图引介:不多用目标对象:被代理的对象织入:是一个动作。执行增强代码的过程,就叫织入。代理:代理对象切面: 切面是通知和切入点的结合。通知说明了干什么和什么时候干(什么时候通过方法名中的befor,after,around...原创 2018-08-08 13:53:07 · 504 阅读 · 0 评论 -
spring中AOP基本配置
我们上篇文章讲了两种代理,基于接口的代理和基于子类的代理。但在spring中,创建代理对象是由框架帮我们做的,我们只需要告诉spring:需要对哪些类中的哪些方法进行拦截,什么时候增强,具体怎么增强。那么下面我们就在bean.xml中配置这些信息。这是我们的通知类:package com.dimples.log;public class MyLog { public void ...原创 2018-08-08 17:43:07 · 121 阅读 · 0 评论 -
spring中的事务控制
我们之前学了动态代理,而关于实物这块,在每个service方法中总就那么几句话,而且地方也是固定的,所以我们也考虑用动态代理来解决它,只是在spring中,框架已经为我们写好了通知类,我们直接配置就好了,跟之前AOP配置稍微有点不同,事务有它自己的配法,不过也差不多,看代码:这是我写的一个方法,模拟转账:public void changeMoney(int i,int j,int mo...原创 2018-08-10 17:58:00 · 157 阅读 · 0 评论 -
spring注解1----使用注解实现IOC和DI
首先使用注解,需要有spring-aop-4.2.2.RELEASE.jar 这个jar包。然后我们的bean.xml文件的约束也需要改动一下,并添加上这句话:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" x...原创 2018-08-06 15:46:20 · 219 阅读 · 0 评论 -
spring入门
Spring的使用也是很简单的三步走:第一步:下载开发包导入jar包Spring开发必须的6个jar包如下:其中的log4j-1.2.17.jar和commons-logging-1.2.jar在Spring开发包中没有,需要另行下载。 第二步:在类的根路径下创建配置文件bean.xml,导入xsd约束,将对应的bean信息配入进去。<?xml version=...原创 2018-07-28 20:48:31 · 106 阅读 · 0 评论 -
spring初入门的一些问题
1、程序间的依赖关系问题我们在用jdbc方式获取conn的时候有这两种写法:DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //注册驱动Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost3306/t...原创 2018-07-25 23:21:37 · 128 阅读 · 0 评论 -
spring中两种创建容器的方式和三种获取bean的方式
容器的不同决定了bean什么时候创建,而在bean里关于bean的配置方式不同,决定了bean怎么创建。得到bean的容器有两种方式:ApplicationContext----立即创建,也就是在ApplicationContext创建的时候就立马创建所有的bean。ApplicationContext ac = new ClassPathXmlApplicationContext(...原创 2018-07-29 13:46:45 · 2347 阅读 · 0 评论 -
bean的作用范围以及bean的生命周期
bean的作用范围取值有五种(scope属性控制):singleton:单例,也是默认值prototype: 多例,比如让Spring接管struts2的action的时候就必须配置此属性request: 一次请求以及此次请求的转发session: 作用范围是一次会话globalsession: 作用范围是一次全局绘画,比如多台服务器之间需要共用同一个bean的时候...原创 2018-07-29 22:00:29 · 2899 阅读 · 0 评论 -
spring中的DI----依赖注入
所谓的依赖注入,其实可以简单的理解为给bean设置属性值,那么给属性赋值有几种方式:1、使用构造函数注入2、使用set方法注入3、使用注解注入注入的值类型不同,写法也不同,注入的属性类型有如下几种:1、基本类型和String类型2、其他bean类型(必须是在bean.xml中配置过的)3、复杂类型(集合类型:数组、List、Set、Map、Properties)那么...原创 2018-07-31 13:12:55 · 133 阅读 · 0 评论 -
关于spring中的5种常用通知
这是我的通知类:package com.hehe.log;import org.aspectj.lang.ProceedingJoinPoint;public class MyLog { //前置通知 public void printLog(){ System.out.println("打印日志!"); } //后置通知 public void printLog1...原创 2018-08-09 11:16:45 · 6491 阅读 · 0 评论 -
用注解的方式配置AOP
通知类:package com.hehe.log;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotati...原创 2018-08-09 13:00:47 · 175 阅读 · 0 评论 -
关于jdbcTemplate的一般操作及其CRUD
jdbcTemplate是spring为我们提供的一个操作数据库的模板类,其实就是对JDBC做了一层薄薄的封装。使用它我们需要先导入这几个包:spring-jdbc-4.2.4.RELEASE.jar、spring-orm-4.2.4.RELEASE.jar、spring-tx-4.2.4.RELEASE.jar以及数据库驱动包然后我们可以这么用: ...原创 2018-08-09 18:01:50 · 143 阅读 · 0 评论 -
jdbcTemplate在Dao中的应用
我们在dao中要用jdbcTemplate的话,就要在每个dao中设置一个属性,如果采用注解的方式,那么只需在属性上写上@Autowired,如果采用xml中配置的方式,那么就要每个dao都写上属性及其set方法。我XML中对 jt 和datasource的配置如下:<bean id="jt" class="org.springframework.jdbc.core.JdbcTe...原创 2018-08-10 12:42:52 · 818 阅读 · 0 评论 -
spring中的切入点表达式
上篇中我们提到在XML文件中配置切入点,需要采用全匹配:pointcut="execution(public void com.dimples.hehe.service.impl.CustomerServiceImpl.saveCustomer())"这种全匹配的方式太繁杂,而且在实际开发中有数千种方法,通过这种方式肯定也不现实,下面我们讲讲切入点的通配符配法。 有时候,我们...原创 2018-08-08 20:28:33 · 390 阅读 · 0 评论