ioc中最基本的JAVA技术_spring技术之IOC总结

spring介绍

spring是分层的javaSE/EE应用的full-stack(全栈)轻量级开源框架,它是ioc(lnversion of control)控制反转和aop(aspect oriented programming)面向切面编程为核心,提供了表现层springmvc和持久层spring jdbc业务层的事务管理等企业级应用解决方案,还能实现将开源世界中众多优秀的第三方框架和类库整合,越来越受欢迎的javaee企业级应用框架。

spring优点

IOC解耦,简化开发

通过spring提供的ioc容器,可以将对象间的依赖关系交由spring管理,避免硬编码造成的程序间过渡耦合,用户也不必再为了编写工厂类,属性文件解析等底层实现编写代码。可以更加专注于业务系统需求实现。

AOP面向切面编程支持

用过spring的aop功能,方便实现面向切面编程,很多使用传统oop编程不容易实现的业务功能,可以通过aop轻松实现,比如事务管理,日志管理。

声明式事务支持

通过声明式方式灵活实现事务管理,提高开发效率和质量,将我们(程序员)从单调烦闷的事务管理代码中解脱出来

方便程序测试

可以使用非容器依赖的方式进行程序测试工作,让测试工作更加轻松,更加方便。

集成第三方优秀框架

spring框架降低了第三方框架的集成使用难度,提供了对各种框架(hibernate,strus2,quartz,mybatis,springmvc等)的直接支持

学习java源码的经典案例

spring的源码设计精妙,结构清晰,匠心独具,处处体现了大师对java设计模式的灵活应用以及java技术的高深造诣,他的源码无疑是java技术的最佳实践案例

IOC介绍

IOC(inversion of control)控制反转,是面向对象编程的一个重要法则,用于消减计算机程序间的耦合问题。控制反转中分为两种类型,一种是DI(Dependency Injection)依赖注入,另外一种是DL(Dependency Lookup)依赖查找。实际应用中依赖注入使用更多。

86d0660fd269113ba9bb338e75208883.png

8841cdfd44e1bff0b00c7a8e82821a30.png

依赖注入介绍

在我们刚才完成的spring的ioc案例中,已经让spring框架为我们创建了客户业务层,客户持久层对象。但是层与层之间的关系没有维护起来。接下来我们来看spring框架的依赖注入。首先给依赖注入下一个定义,依赖注入(Dependency Injection),它是spring框架核心ioc的具体实现。我们在编写程序代码时,通过控制反转,把对象交给spring管理。但是代码中必然会存在一定的依赖关系,比如在业务层(service)中,需要引用持久层(dao)对象,那么这种层与层之间的关系,我们也交给spring来维护。

简单理解:依赖注入就是给成员变量赋值。

构造方法注入

构造方法注入。顾名思义,就是通过类中的构造方法,给成员变量赋值。

afb19382604182c38f6f085960bbd65e.png

8db554bd079186ba1601f047aa57f390.png

efca15c2e98f6af2f7556bb44578c3ea.png

set方法注入

set方法注入。顾名思义,就是通过类中的set方法,给成员变量赋值。

a6ab902c5962e815fca366c3a4f55d9c.png

101c414a0957e1ec08c047307725f6cb.png

a9707aa46efa60d7653a5537afc25306.png

720bca0d95ac955087e926171ee77825.png

一、spring的IOC常用注解

1.注解入门体验:

第一步:创建项目

第二步:编写项目的三层对象

第三步:搭建spring IOC的xml方式环境

配置pom.xml,导入ioc框架包

编写bean.xml配置文件

第四步:使用注解方式体验

2.常用注解:

2.1.创建对象相关的注解

@Component

衍生的三个注解:@Controller,@Service,@Repository

2.2.设置bean的作用范围相关的注解

@Scope

2.3.注入数据相关的注解

@Autowired,@Qualifier,@Resource,@Value

2.4.与bean的生命周期相关的注解【了解】

@PostConstruct,@PreDestroy

二、案例演示spring的IOC注解使用

1.纯xml版本

第一步:创建项目

第二步:配置pom.xml,导入jar包

spring框架包(ioc相关的jar包)

spring jdbc模块的包

druid连接池包

mysql数据库驱动包

第三步:编写客户实体类

第四步:编写客户RowMapper结果集映射类

BeanPropertyRowMapper

第五步:编写客户持久层对象

第六步:编写客户业务层对象

第七步:编写bean.xml配置文件

第八步:编写客户表现层对象

2.xml与注解混合版本

思路:

第一步:把我们的dao和service使用注解配置

第二步:把第三方的对象(JdbcTemplage,DataSource),保留在bean.xml

第三步:配置包扫描dao和servic

3.纯注解初始版本

思路:不再需要xml文件,找一个什么来代替xml文件???

答案:编写一个java类作为spring的配置类,代替bean.xml文件

4.纯注解优化版本

问题:

1.数据库连接池的属性,在java代码写死了,属于硬编码

2.在主配置文件的对象太多,能不能采用模块化的思想,分模块编写配置类

三、spring框架整合junit

1.纯xml版本的整合

2.纯注解版本的整合

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值