Spring
weixin_41113108
这个作者很懒,什么都没留下…
展开
-
Spring:使用动态工厂降低耦合度
创建接口:public interface ISomeInterface {void doSome();}创建接口实现类:public class SomeServiceIm implements ISomeInterface {@Overridepublic void doSome() {// TODO Auto-generated method stubSy转载 2018-01-16 21:35:57 · 235 阅读 · 0 评论 -
Spring:AOP的简单介绍
AOP基本概念:AOP,面向切面编程,是一种概念,是一种思想,其实现者有很多,Spring就是其一。AOP,是ooP的一种补充,OOP是从静态角度考虑程序的结构,而AOP是动态角度考虑程序的运行过程。Spring就是降低耦合度的,其中ioC用于降低业务逻辑之间的耦合度,AOP用于降低逻辑与系统级服务(交叉业务逻辑)间的耦合度,将系统级服务在运行时织入到主业务逻辑中。Spring的AOP的底层工作原...转载 2018-03-16 08:56:35 · 307 阅读 · 0 评论 -
Spring:通知(Advice)
通知的分类:前置通知(MethodBeforeAdvice)、后置通知(AfterReturningAdvice)、环绕通知(MethodInterceptor)、异常通知(ThrowsAdvice)我们先定义一个接口:ISomeInterfacepublic interface ISomeInterface {String doFirst();void doSecond();}我们再定义接口的实...转载 2018-03-16 08:57:31 · 363 阅读 · 0 评论 -
Spring:顾问(Advisor)
顾问基本概念:顾问是另一种切面,顾问包装了通知。两个advice属性:PointcutAdvisor:切入点顾问,用于指定切入织入的位置,即要将切面织入到哪个目标方法。IntrodctionAdvisor:引入顾问,在不修改目标类的前提下为目标对象增加新内容。一、切入点顾问(PointcutAdvisor):(一)、名称匹配方法切入点顾问:我们现在想只让前置通知织入到doFirst方法,而不织入到...转载 2018-03-16 08:58:25 · 1582 阅读 · 0 评论 -
基于Spring的AspectJ对AOP的实现
一、基本概念:AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。切入点表达式(用于指定切入点):execution(),里面包含:访问权限、返回值类型、权限定性类名(接口名)、方法名、抛出异常、参数列表。其中返回值类型、方法名必须要有。二、环境搭建:1、导包:Spring与AspectJ...转载 2018-03-16 08:59:17 · 238 阅读 · 0 评论 -
Spring:JDBC模板
我们通过几个实例来演示下JDBC模板。创建Student类(id,name,age)和相应的数据库表。创建接口:public interface ISomeService {void saveStudent(Student student);void removeStudentById(int id);void modifyStudent(Student student);String findS...转载 2018-03-16 09:00:11 · 171 阅读 · 0 评论 -
Spring:事务管理的基本知识
Spring事务管理:主要是将事务由dao层提升至service层。一、平台事务管理器:该接口的功能主要是完成事务的提交回滚。常用的两个实现类:DataSourceTransactionManager:当使用JDBC或者Mybatis(ibatis)连接数据库时使用。HibernateTransactionManager:当使用Hibernate连接数据库时使用。Spring的默认回滚方式:发生运...转载 2018-03-16 09:00:48 · 112 阅读 · 0 评论 -
Spring:事务管理举例——购买股票
我们定义了两个实体类及对应的表:public class Account {private Integer aid;private String aname;private Integer balance;public class Stock {private Integer sid;private String sname;private Integer count;定义了两个dao接口及其实现...转载 2018-03-16 09:01:33 · 223 阅读 · 1 评论 -
Spring:MyBatis与Spring整合(重点)
需要从mybatis官网下载spring与mybatis整合架包。项目结构MyBatis主配置文件:MyBatis主配置文件MyBatis映射文件:MyBatis映射文件Spring:容器(整合)容器解释:这里通过SqlSessionFactoryBean类生成sqlSessionFactory,sqlSessionFactory再生sqlSession。通过MapperScannerConfig...转载 2018-03-16 09:02:26 · 151 阅读 · 0 评论 -
Spring:使用默认装配方式Spring降低耦合度
我们创建一个接口:ISomeInterface,里面有个方法,void doSome();创建一个Student类,继承这个接口并实现该方法:public void doSome() {// TODO Auto-generated method stubSystem.out.println("执行dosomg方法!!!");我们之前的测试类是这样的:Student stud转载 2018-01-09 17:18:56 · 293 阅读 · 0 评论 -
Spring:基于注解的DI
一、DI的基本注解:我们直接在实体类里为属性赋值,如果通过这种方式的话我们可以不使用getter和setter方法也不需要构造方法就可以达到赋值的目的,然后再 在xml文件也就是容器中简单配置,告诉系统如果找的话去哪里找实体类与@Component标签注解功能相同,意义不同的还有三个:@Service 注解在Service类上@Repository 注解在Dao转载 2018-01-16 21:44:00 · 242 阅读 · 0 评论 -
Spring:使用静态工厂降低耦合度
创建接口创建接口实现类工厂类容器(理解示意图)测试类结果转载 2018-01-16 21:37:22 · 146 阅读 · 0 评论 -
Spring:Bean的作用范围及Bean的生命周期
Bean的作用范围:scope一共有四个取值:Prototype:原型模式,每次都创建,当需要时就创建Singleton:默认模式,表示当前Bean为单例模式,一次创建后放入容器,需要时直接调用request:用于web应用,同一个请求创建一个session:用于web应用,同一次回话创建一个Bean的生命在周期:Bean一共要11个可控转载 2018-01-16 21:38:11 · 292 阅读 · 0 评论 -
Spring:数组与集合属性注入(重点,以后会常用)
我们创建了一个Pro类,里面放了常见的数组和集合,我们分别用容器为他们呢赋值:Pro类String names[]:写法一写法二List mylist:写法一写法二List schools:写法一写法二注意:这里的写法二只限于有一个域属性时,多个则用写法一;Set myset:写法一写法二Map mym转载 2018-01-16 21:38:43 · 613 阅读 · 0 评论 -
Spring:设值注入、构造注入及命名空间注入
注入一般分为三类:设值注入:调用相关属性的set方法,完成赋值过程,是实际工作中用的最多的一种。构造注入:调用相关的构造器完成的对象创建及其赋值过程,称为构造注入,但是实际工作中不常用实现特定接口注入:该方式为侵入式编程,会污染代码,因此基本不用命名空间注入命名空间注入是相对于设值注入和构造注入的,是为这两种换了一种写法。p命名空间注入对应的是设值注入,c命转载 2018-01-16 21:39:25 · 474 阅读 · 0 评论 -
Spring:域属性的自动注入
我们创建两个实体类:Student类School类byName自动注入形式:容器byType自动注入形式:容器说明:byName方式的自动注入,系统会从容器中查找与域属性同名的bean自动注入byType方式注入,系统会从容器中查找与域属性类型具有is-a关系(子父类关系、实现类和接口的关系)的bena,找到则自动注入,如果有两个或者转载 2018-01-16 21:39:58 · 561 阅读 · 1 评论 -
Spring:SPEL(Spring EL表达式)注入
注意这里的EL表达式是#开头的。转载 2018-01-16 21:41:01 · 2765 阅读 · 0 评论 -
Spring:内部Bean注入、同类抽象Bean和异类抽象Bean注入
内部Bean注入(Bean的嵌套注入、匿名内部Bean注入):我们有两个类,Student、School,School是Student里的域属性,我们要求,这个school只能让Student调用,外界不能调用。这样外部调用school会出错。同类抽象Bean注入:假如我们在xml文件中定义了3个student类:容器测试结果但是我们发现,容转载 2018-01-16 21:41:47 · 432 阅读 · 0 评论 -
Spring:为应用指定多个Spring配置文件
在实际工作中,我们的配置文件会有很多,而配置文件的协调工作分为两种关系:平等关系、包含关系。平等关系:我们在applicationContext.xml文件中定义了student类的属性,在applicationContext02.xml里定义了school的属性,这两个xml文件是平等关系,是这样协调工作的:applicationContext.xmlapplicatio转载 2018-01-16 21:42:37 · 3523 阅读 · 1 评论 -
Spring:部署到web应用
需求:我们通过jsp页面提交信息,保存包数据库并跳转到欢迎页面。应用结构:一、Bean:Student类:二、dao层:dao接口MyBatis映射文件三、service层:service接口service接口实现类四:MyBatis主配置文件1、在容器里注册datasource:2、在容器里注册事务管理器:3、在容器里注册dao,根据这个生成mybatis的sqlsession:4、注册serv...转载 2018-03-16 09:03:09 · 285 阅读 · 0 评论