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)依赖查找。实际应用中依赖注入使用更多。

 

 

 

 

 依赖注入介绍

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

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

构造方法注入

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

 

 

 

 

 

 

 set方法注入

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

 

 

 

 

 

 一、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.纯注解版本的整合

posted @ 2020-06-12 09:11  JAVA_宇  阅读(251)  评论(0编辑  收藏  举报