Spring中di配合接口编程

一:DI基本概念

依赖注入(DI),是spring容器实现的基础,在spring-core模块中实现的。所谓DI,就是指对象是被动接受依赖类而不是自己主动去找,换句话说就是指对象不是从容器中查找它依赖的类,而是在容器实例化对象的时候主动将它依赖的类注入给它。

DI作用:

di配合接口编程,的确可以减少层(web层) 和 业务层的耦合度.

二:DI配合接口编程案例

1.项目截图

2.基本代码

package com.cloud.inter;

public
interface
ChangeLetter {

public String change();

}

package com.cloud.inter;

public
class
LowerLetter
implements ChangeLetter{

private String
str;

public String getStr() {

return
str;

}

public
void
setStr(String str) {

this.str = str;

}

@Override

public String change() {

//
TODO Auto-generated method stub

return
str.toLowerCase();

}

}

package com.cloud.inter;

public
class
UpperLetter
implements ChangeLetter{

private String
str;

public String getStr() {

return
str;

}

public
void
setStr(String str) {

this.str = str;

}

@Override

public String change() {

//
TODO Auto-generated method stub

return
str.toUpperCase();

}

}

3.配置代码

<?xml
version="1.0"encoding="utf-8"?>

<beans
xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd

            http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd

            http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<!--
在测试代码中任意切换这两种配置方法 -->

<!--

<beanid="changeLetter" class="com.cloud.inter.UpperLetter">

<propertyname="str">

<value>abcef</value>

</property>

</bean>

-->

<bean
id="changeLetter"class="com.cloud.inter.LowerLetter">

<property
name="str"
value="ABCDE"/>

</bean>

</beans>

4.测试代码

package com.cloud.inter;

importorg.springframework.context.ApplicationContext;

importorg.springframework.context.support.ClassPathXmlApplicationContext;

public class App1 {

/**

* @param args

*/

publicstatic void main(String[] args) {

//TODO Auto-generated method stub

ApplicationContextac=new ClassPathXmlApplicationContext("com/cloud/inter/beans.xml");

//获取不使用接口

//UpperLetterchangeLetter=(UpperLetter) ac.getBean("changeLetter");

//System.out.println(changeLetter.change());

//使用接口访问bean

ChangeLetterchangeLetter=(ChangeLetter) ac.getBean("changeLetter");

System.out.println(changeLetter.change());

}

}

版权声明:博主原创文章,转载请说明出处。http://blog.csdn.net/dzy21

时间: 2024-12-25 13:23:53

Spring中di配合接口编程的相关文章

spring中一些aware接口

Spring中提供一些Aware相关接口,像是BeanFactoryAware. ApplicationContextAware.ResourceLoaderAware.ServletContextAware等等,实现这些 Aware接口的Bean在被初始之后,可以取得一些相对应的资源,例如实现BeanFactoryAware的Bean在初始后,Spring容器将会注入BeanFactory的实例,而实现ApplicationContextAware的Bean,在Bean被初始后,将会被注入 A

spring中基础核心接口总结

spring中基础核心接口总结理解这几个接口,及其实现类就可以快速了解spring,具体的用法参考其他spring资料 1.BeanFactory最基础最核心的接口重要的实现类有:XmlBeanFactory,以及ApplicationContext接口下的类 2.Resource接口,可以通用地访问文件资源1)ClassPathResource:读取得形式为"classpath:ApplicationContext.xml"2)FileStstemResource:读取得形式为&qu

spring中的aware接口

1.实现了相应的aware接口,这个类就获取了相应的资源. 2.spring中有很多aware接口,包括applicationContextAware接口,和BeanNameAware接口. 实现了这些接口的类,然后,这类中就包含了applicationContext对象的引用.BeanNameAware接口就是返回此bean的名字而已,一个string 3.applicationContext就是ioc容器,其实现了BeanFactory,可以解析xml里的各种bean,并把这些bean存储在

Java中的面向接口编程

面向接口编程是很多软件架构设计理论都倡导的编程方式,学习Java自然少不了这一部分,下面是我在学习过程中整理出来的关于如何在Java中实现面向接口编程的知识.分享出来,有不对之处还请大家指正. 接口体现的是一种规范和实现分离的设计哲学,充分利用接口可以极好地降低程序各模块之间的耦合,从而提高系统的可扩展性和可维护性.基于这种原则,通常推荐“面向接口”编程,而不是面向实现类编程,希望通过面向接口编程来降低程序的耦合.下面分两种常用场景来示范“面向接口”编程的优势. (一)简单工厂模式 有一个场景,

在Spring中使用AOP切面编程

如果有对SpringAOP不太懂的小伙伴可以查看我之前的Spring学习系列博客 SpringBoot的出现,大大地降低了开发者使用Spring的门槛,我们不再需要去做更多的配置,而是关注于我们的业务代码本身,在SpringBoot中使用AOP有两种方式: 一.使用原生的SpringAOP(不是很推荐,但这是最基本的应用) 基原理就是之前写的SpringAOP在web应用中的使用的第三种方式,使用@AspectJ样式注解方式 第1步,引入Aspect的相关依赖 <dependency> <

从对轮播图的封装中体会 面对接口 编程的思想

.h 文件的内容: #import <UIKit/UIKit.h> NS_ASSUME_NONNULL_BEGIN @interface MFCyclmage : UIView // 私有属性, 可以对外公开, 使用readonly // 一般让别人去修改这个属性的属性(不能修改这个属性) @property (nonatomic, strong, readonly) UIScrollView *cycleScrollView; @property (nonatomic, strong, re

spring中aware接口的

一.关于spring中Aware结尾接口介绍: Spring中提供一些Aware结尾相关接口,像是BeanFactoryAware. BeanNameAware.ApplicationContextAware.ResourceLoaderAware.ServletContextAware等等. 实现这些 Aware接口的Bean在被实例化 之后,可以取得一些相对应的资源,例如实现BeanFactoryAware的Bean在实例化后,Spring容器将会注入BeanFactory的实例,而实现Ap

Spring 中使用 Mybatis generator 自动生成代码

Mybatis generator 是一个 Mybatis 插件,可以用于自动生成项目中需要的 pojo 类.对应的 Mapper 接口和 mapper.xml 文件.使用该插件,一方面可以节省开发时间,另一方面也避免手写时打错字的问题. 由于工作需要,我打算在原有的 Spring 项目中使用 Mybatis generator 自动生成代码,以便简化 DAO 层的开发. 闲言少叙,just do it! 1. 引入依赖 a. 父模块配置 <properties> <spring_ver

用IDEA详解Spring中的IoC和DI(挺透彻的,点进来看看吧)

用IDEA详解Spring中的IoC和DI 一.Spring IoC的基本概念 控制反转(IoC)是一个比较抽象的概念,它主要用来消减计算机程序的耦合问题,是Spring框架的核心.依赖注入(DI)是IoC的另外一种说法,只是从不同的角度描述相同的概念.看完这两句,是不是不但没懂,反而更迷惑了,别急,往下看: IoC的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 如果我们打开机械式手表的后盖,就会看到与