Spring基础学习笔记(一)

目录

学习spring最关键一点                 

核心特征

 IOC控制反转:代码耦合高

 DI依赖注入:对象之间依赖关系处理繁琐

AOP编程:事务控制和业务代码耦合

Spring应用意义


学习spring最关键一点                 

思想变化:Spring本身就是一个大工厂,把耦合交给spring,追求的就是低耦合高内聚(不过还是耦合了spring)

 

核心特征

  IOC控制反转:代码耦合高

  要求:不修改原有源代码(java代码)实现需求:

增加ProductMyBatisDaoImpl  使用的service层,把实现改了

最终实现效果:

修改配置文件,然后实现类就改变

1.提供一个BeanFactory(工厂方法)

BeanFactory.getDao(“productDao”,IProductDao .class);

productDao=cn.itsource.product.dao.impl.ProductDaoImpl

2.Spring

Action层scope=prototype变成多例,使用一次new一次

//单例
<bean id=”productDao” class=”cn.itsource.product.dao.impl.ProductDaoImpl” />

//多例(访问一次,就new一次)
<bean id=”productAction” class=”cn.itsource.product.dao.impl.ProductAction” scope=”prototype”/>

 DI依赖注入:对象之间依赖关系处理繁琐

   Service层依赖于dao层

ProductServiceImpl

private IProductDao productDao = new ProductDaoImpl();

 

1.如果用BeanFactory来处理service层?会遇到什么问题?

BeanFactory.getService(“productService”,IProductService .class);


productDao=cn.itsource.product.dao.impl.ProductDaoImpl

productService=cn.itsource.product.dao.impl.ProductServiceImpl

怎样处理service依赖dao的问题

 

2.Spring

<bean id=”productDao999” class=”cn.itsource.product.dao.impl.ProductDaoImpl”/>

<bean id=”productService” class=”cn.itsource.product.dao.impl.ProductServiceImpl”>

   在spring配置文件出现的name属性都是指的java的属性名 setProductDao方法

   属性productDao需要引用dao的实例

   <property name="productDao000" ref="productDao999"/>

</bean>

AOP编程:事务控制和业务代码耦合

 

xxx编程

    OOP面向对象编程

    封装,继承,多态,抽象   基础

    Aop 面向切面编程(实现不修改原有java代码前提下,就实现额外(增强)功能)  对oop的补充

    处理各层公共功能:日志管理(每层),事务管理(service层),权限管理(Action层,Service层)

 

Spring应用意义

Spring是一个轻量级的DI/IoC和AOP容器框架。存在的目的是用于构建轻量级的J2EE应用。

轻量级:应用大小和应用开支,包括应用方式

DI/IoC:提供松耦合的一种实现技术

AOP:切面编程将业务逻辑从应用服务中分离

容器:包含并管理应用对象的生命周期和配置

框架:使用组件配置组合成复杂的应用,并提供很多基础功能

Spring提供了对开源社区中很多框架及JavaEE中很多技术的支持,让程序员很轻松能整合及使用这些框架技术。

Spring以一种非侵入式的方式来管理你的代码,Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring 。

With out EJB :JavaEE可以不使用sun EJB

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值