spring入门篇(一)
来源:互联网 发布:止汗露哪个牌子好 知乎 编辑:程序博客网 时间:2024/06/07 10:04
专题一
·接口及面向接口的编程
接口
·用于沟通的中介物的抽象化
·实体把自己提供给外界的一种抽象化说明,用以由内部操作分离出外部沟通方法,使 其能被修改内部而不影响外界其他实体与其交互的方式
·对应java接口即声明,声明了那些方法是公开的
·java8中接口可以有方法体
面向接口编程
·结构设计中,分清层次及调用关系,每层只向外(上层)提供一组功能结构,各层间 仅依赖接口而非实现类
·接口实现的变动不影响各层间的调用,这一点在公共服务中尤为重要
·面向接口编程中的接口是用于隐藏具体实现和实现多性的组件
·例子
·什么是IOC
·IOC:控制反转 控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是 由外部容器负责创建和维护
·DI(依赖注入)是一种实现方式。所谓依赖注入,就是由IOC容器在运行期间,动态 的将某种依赖关系注入到对象之中
·目的:创建对象并且组装对象之间的关系
IOC房屋中介
·找中介——————————找IOC容器
·中介介绍房子————————容器创建并返回对象
·租房、入住——————————使用对象
·Spring的Bean配置
在IOC容器中,他把所有的对象都称之为Bean,Spring的Bean配置:
Interface OneInterface { void hello();}
Class OneInterfaceImpl{ public void hello(String s){syso(s}}
可以发现:不必自己创建对象了,IOC机制就提供了,面向接口编程了,IOC隐藏实现了,不管对象了(IOC管了)
·Bean的初始化
·Spring的常用注入方式
·Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为。(若类A中有一个B类型的实例变量,则在加载Bean A在对变量b赋值时也会加载Bean B)
·常用的两种注入方式:设值注入、构造注入
类InjectionServiceImpl会自动调用本类中的setInjectionDAO方法对其类中的属性injectionDAO赋值,ref指得是第二个<bean>中的id,这样将两个<bean>联系起来
service是指处理业务逻辑的部分,而DAO是对数据库进行操作的部分,两者分工明确
代码示例:
Service:
Interface InjectionService { void save1(String s);}
class InjectionServiceImpl implements InjectionService{
private InjectionDAO injectionDAO;
public void save1(String s){
Syso(“Serivce接收参数:”+s);
s = s+”:”+this.hashCode();
injectionDAO.save2(s)
}
public void setInjectionDAO(InjectionDAO injectionDAO){
this.injectionDAO = injectionDAO;
}
}
Inteface InjectionDAO { void save2(String s);}
class InjectionDAOImpl implements InjectionDAOImpl{
publi void save2(String s){
Syso(“DAO保存参数:”+s)
}
}
spring-injection.xml文件配置如上设值注入。注意第一个Bean中的property name是InjectionServiceImpl类中的属性injectionDAO,ref是第二个Bean中的id
junit类:
@RunWith(BlockJUnit4ClassRunner.class)
class InjectionTest extends UnitTestBase{
public InjectionTest(){
super(“classpath:spring-injection.xml”);
}
@Test
public void testSetter(){
InjectionService service = super.getBean(“injectionService”);//调用该类的set方法,对xml中配置的对应的property赋值
service.save(“这是要保存的数据”);
}
}
然后运行junit测试方法,输出如下:(注意整个过程并没有调用service实现类中的set方法对类中的DAO类实例赋值)
Service接收参数:这是要保存的数据
DAO保存参数:这是要保存的数据:某哈希码
构造注入(除了<constructor-arg 其他与前者相同)
调用InjectionServiceImpl中的一个构造器,该构造器有一个参数injectionDAO,并对该类中的injectionDAO属性进行赋值。要注意第二行中name必须与service实现类中的属性名相同。
代码示例:将上面的代码示例中的set赋值方法改为构造器赋值,xml同时修改为构造器参数即可
- spring入门篇(一)
- Spring入门(一)
- Spring入门(一)
- Spring.Net入门篇(一)
- Spring Boot 教程(一)---入门篇
- Spring Boot 教程(一)---入门篇
- spring boot(一):入门篇
- spring boot(一):入门篇
- spring boot(一):入门篇
- Spring入门笔记(一)
- Spring入门介绍(一)
- spring入门基础(一)
- Spring框架入门(一)
- Spring框架入门(一)
- Spring入门学习(一)
- Spring框架入门(一)
- spring-boot入门(一)
- Spring Boot入门(一)
- HALCON OCR训练文件生成步骤
- Now Or Never
- (经典)http中get和post方法的区别
- JDBC连接MySql数据库
- 学习笔记---常模糊的知识点
- spring入门篇(一)
- 数据流重定向和vim的基本使用
- 一张图解释编译过程词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成
- 高精度模版
- 什么是设计模式
- TensorFlow基础篇
- 哥德巴赫猜想
- 使用 Vultr 搭建 ShadowSocks
- 75行贪吃蛇代码,还在修订还请勿转