Spring课程 Spring入门篇 2-2 Spring注入方式
本节主要讲了以下两块内容:
1 xml两种注入方式
2 注入方式代码实现
3 特别注意
1 xml两种注入方式
构造注入和set注入
2 注入方式代码实现
2.1 set注入方式的实现
实现类
package com.imooc.ioc.injection.service; import com.imooc.bean.ioc.interfaces.InjectionDao;
import com.imooc.bean.ioc.interfaces.InjectionService; public class InjectionServiceImpl implements InjectionService { private InjectionDao injectionDao; //set注入
public void setInjectionDao(InjectionDao injectionDao) {
this.injectionDao = injectionDao;
} @Override
public void save(String sArgs) {
injectionDao.save(sArgs);
// TODO Auto-generated method stub
System.out.println("开始保存!!!"+sArgs);
} }
注入类
package com.imooc.ioc.injection.service;
import com.imooc.bean.ioc.interfaces.InjectionDao;
public class InjectionDaoImpl implements InjectionDao{
@Override
public void save(String args) {
// TODO Auto-generated method stub
System.out.println("导层保存参数"+args);
}
}
spring-injection.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"
default-init-method="init" default-destroy-method="destroy"> <bean id="injectionService" class="com.imooc.ioc.injection.service.InjectionServiceImpl">
<property name="injectionDao" ref="injectionDao"/>
</bean> <bean id="injectionDao" class="com.imooc.ioc.injection.service.InjectionDaoImpl"></bean> </beans>
测试类:
package com.imooc.test.ioc.interfaces; import org.junit.Test; import com.imooc.bean.ioc.interfaces.InjectionService;
import com.imooc.test.base.UnitTestBase; public class TestInjectionService extends UnitTestBase{ public TestInjectionService() {
super("classpath*:spring-injection.xml");
// TODO Auto-generated constructor stub
} @Test
public void testInjectionService(){
//得到当前对象
InjectionService iService = super.getbean("injectionService");
iService.save("12345");
} }
2.2 构造注入方式的实现
实现类
package com.imooc.ioc.injection.service; import com.imooc.bean.ioc.interfaces.InjectionDao;
import com.imooc.bean.ioc.interfaces.InjectionService; public class InjectionServiceImpl implements InjectionService { private InjectionDao injectionDao; /*//set注入
public void setInjectionDao(InjectionDao injectionDao) {
this.injectionDao = injectionDao;
}*/ //构造器注入
//注意:这里要有 this.injectionDao = injectionDao;
public InjectionServiceImpl(InjectionDao injectionDao) {
// TODO Auto-generated constructor stub
this.injectionDao = injectionDao;
} @Override
public void save(String sArgs) {
injectionDao.save(sArgs);
// TODO Auto-generated method stub
System.out.println("开始保存!!!"+sArgs);
} }
注入类:(同上)
spring-injection.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"
default-init-method="init" default-destroy-method="destroy"> <!-- <bean id="injectionService" class="com.imooc.ioc.injection.service.InjectionServiceImpl">
<property name="injectionDao" ref="injectionDao"/>
</bean> --> <!-- 注意:这里是ref -->
<bean id = "injectionService" class="com.imooc.ioc.injection.service.InjectionServiceImpl">
<constructor-arg name="injectionDao" ref="injectionDao"></constructor-arg>
</bean> <bean id="injectionDao" class="com.imooc.ioc.injection.service.InjectionDaoImpl"></bean> </beans>
测试类:
package com.imooc.test.ioc.interfaces; import org.junit.Test; import com.imooc.bean.ioc.interfaces.InjectionService;
import com.imooc.test.base.UnitTestBase; public class TestInjectionService extends UnitTestBase{ public TestInjectionService() {
super("classpath*:spring-injection.xml");
// TODO Auto-generated constructor stub
} @Test
public void testInjectionService(){
//得到当前对象
InjectionService iService = super.getbean("injectionService");
iService.save("12345");
} @Test
public void testInjectionServiceConstruct(){
//得到当前对象
try {
InjectionService iService = super.getbean("injectionService");
iService.save("12346");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} } }
3 特别注意
xml配置的name,实现类中的变量,必须保证完全一致,否则,系统报错,找不到指定的方法。
Spring课程 Spring入门篇 2-2 Spring注入方式的更多相关文章
- Spring Boot -01- 快速入门篇(图文教程)
Spring Boot -01- 快速入门篇(图文教程) 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到[慕课网]手机 app ...
- Spring实践系列-入门篇(一)
本文主要介绍了在本地搭建并运行一个Spring应用,演示了Spring依赖注入的特性 1 环境搭建 1.1 Maven依赖 目前只用到依赖注入的功能,故以下三个包已满足使用. <properti ...
- Spring的三种通过XML实现DataSource注入方式
Spring的三种通过XML实现DataSource注入方式: 1.使用Spring自带的DriverManagerDataSource 2.使用DBCP连接池 3.使用Tomcat提供的JNDI
- Spring Cloud Alibaba入门篇
学习条件 了解web三层架构 熟练应用SSM架构 了解Maven管理工具的使用 熟练使用SpringBoot,以及了解SpringBoot基本原理. 了解部分术语:应用.工具.耦合.负载等 温馨提示: ...
- Spring Data JPA 入门篇
Spring Data JPA是什么 它是Spring基于ORM框架(如hibernate,Mybatis等).JPA规范(Java Persistence API)封装的一套 JPA应用框架,可使开 ...
- spring boot 学习入门篇【spring boot项目的搭建以及如何加载jsp界面】
[ 前言] Spring Boot 简介:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置, ...
- spring List,Set,Map,Properties,array的配置文件注入方式
虽然不多,但是有时候在实现的时候,我们还是希望某些参数或者属性通过集合()的方式注入进来,比如配置表参数列表,addresslist,亦或是三方库等等.因为这种改动不是很多,经常一时想不起来,今天做个 ...
- spring boot(一):入门篇
构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...
- Spring Boot(一):入门篇+前端访问后端
转自:Spring Boot(一):入门篇 什么是Spring Boot Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发 ...
- (转)Spring boot(一):入门篇
https://www.cnblogs.com/ityouknow/p/5662753.html#!comments 构建微服务:Spring boot 入门篇 什么是Spring Boot Spri ...
随机推荐
- GIT版本控制系统(二)
貌似第二条有点用,还木有都验证过,贴过来再说~ 转自: http://www.cnblogs.com/lhb25/p/10-useful-advanced-git-commands.html 1. 导 ...
- STL学习笔记--临时对象的产生与运用
所谓的临时对象,就是一种无名对象(unnamed objects).它的出现如果不在程序员的预期之下,往往造成效率上的负担.但有时刻意制造一些临时对象,却又是使程序干净清爽的技巧.刻意制造临时对象的方 ...
- 模板 可并堆【洛谷P3377】 【模板】左偏树(可并堆)
P3377 [模板]左偏树(可并堆) 如题,一开始有N个小根堆,每个堆包含且仅包含一个数.接下来需要支持两种操作: 操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y个数已经被删 ...
- 关于Intel芯片架构的发展史
---恢复内容开始--- 当你真正的深入去行走在底层的道路上,你就会接触大量的一些貌似懂的概念性名词,比如Intel公司的x86架构,x64等等,又或者是当年的386,486等等,唉,有的时候真的是 ...
- vscode 配置 java utf-8 编码
utf-8 编码 和 lombok 的 配置 "java.jdt.ls.vmargs": "-noverify -Xmx1G -XX:+UseG1GC -XX:+UseS ...
- 【笔记】MySQL学习之索引
[笔记]MySQL学习之索引 一 索引简单介绍 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可. 普通 ...
- CodeForces - 984C——Finite or not?分数整除问题(数论,gcd)
题目传送门 题目描述:给你一个p/q,让你求在b进制下,这个小数是不是有限小数. 思路: 先来膜拜一个大神的博客,如何求小数的二进制表达,(感谢博主肘子zhouzi).然后小数的其他进制表达也一样. ...
- sqlserver 事务日志
预写式日志(Write-Ahead Logging (WAL)) --在数据写入到数据库之前,先写入到日志. 1.”Begin Tran”记录 -> 缓冲区 2. 日志 ...
- java web关于文件上传下载的总结
文件上传使用<form method="POST" enctype="multipart/form-data"> , 而不是默认的applica ...
- Why do you need a new Launch X431 scan tool?
1- 2017 Launch x431 v supports “Special Functions” The 2017 version of Launch x431 v diagnostic tool ...