java非侵入式是什么意思,Spring框架基础

Spring是什么

一个轻量级的企业应用开发框架

非侵入式的框架 应用对框架的依赖很小,很多时候应用代码都可以使用POJO风格。

POJO:没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。

优点 :低耦合(类与类之间的联系) 高度可配置 易测试 开发简单。

侵入式与非侵入式的区别:

侵入式:

比如说Struts框架,我们在使用该框架的时候必须要继承其框架的一些类,这时框架就与我们的源代码结合,也就是侵入了我们的代码。

优缺点:

开发中可以更好的与框架结合,更充分的利用框架的功能,但是复用性差,如果我们去掉框架,源程序将不能运行,我们需要进行改动程序的时候需要从源代码中更改,这是非常麻烦的。

非侵入式:

如Spring框架,我们在使用Spring框架时无需在代码中继承框架的类,通常只需要配置XML的Sping完成依赖注入就可以使用了,这时框架就没有侵入到我们的源代码中,这就是非侵入式。

优缺点:

非侵入式的代码没有对框架产生过多的依赖,我们在需要修改功能时只需要修改XML配置文件就可以了,如果我们不需要框架了,直接更改XML以及一小部分源代码的一些配置就可以,并不会影响源程序的运行,可以很方便的迁移到其他地方。但是与用户代码互动的方式可能就比较复杂。

Spring结构框图:

6105

Spring模块

Spring核心模块(Spring Core) :

Spring的核心容器模块,它提供IOC的支持。该模块中包含BeanFactory,它采用工厂模式来实现IOC,负责对bean的生命周期的管理。

Application Context(上下文模块) :

该模块扩展了BeanFactory的功能,例如提供了i18n,系统生命周期以及验证的支持

Spring的AOP模块:

该模块为应用系统的AOP开发提供了支持。

JDBC和DAO模块:

提供了JDBC封装的模板代码,使得使用JDBC开发更加简洁。

ORM映射模块:

该模块提供了对许多流行的ORM框架的支持,其中包括Hibernate,JDO和iBATIS SQL的支持

Spring Web模块:

该模块中Spring提供了对其它的WEB框架的支持,包知Struts,JSF,WEBWORK等

Spring MVC框架:

Spring提供的用于开发WEB应用的MVC框架

Spring核心应用

IOC(控制反转)

程序中各个组件之间的关系,不由程序代码直接操控,而由容器控制。控制权由应用代码中转到了外部容器,即所谓的反转。

更通俗的名称:DI(依赖注入)

各个组件之间的依赖关系不是在程序中写死,而是写在外部的配置文件中,然后运行时通过容器动态注入。

Spring核心容器提供了IOC的具体实现,所有的其它模块都是建立在它的基础之上。

什么是IOC(DI): 把自己new的东西改为由容器提供

有什么好处: 灵活装配//未使用IOC示例代码

private UserDao userDao = null;

public UserDao getUserDao(){

//未使用IOC,代码新建Dao的实例

userDao = new UserDao();

return userDao;

}

public void saveUser(User user){

//获取Dao,调用Dao的方法保存用户

getUserDao().save(user);

}//使用IOC示例代码

private UserDao userDao = null;

//容器自动调用该方法注入当前对象依赖的UserDao

public void setUserDao(UserDao userDao){

this.userDao = userDao ;

}

public void saveUser(User user){

//获取Dao,调用Dao的方法保存

userDao.save(user);

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值