课程链接:

本节主要讲了以下两块内容:

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注入方式的更多相关文章

  1. Spring Boot -01- 快速入门篇(图文教程)

    Spring Boot -01- 快速入门篇(图文教程) 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到[慕课网]手机 app ...

  2. Spring实践系列-入门篇(一)

    本文主要介绍了在本地搭建并运行一个Spring应用,演示了Spring依赖注入的特性 1 环境搭建 1.1 Maven依赖 目前只用到依赖注入的功能,故以下三个包已满足使用. <properti ...

  3. Spring的三种通过XML实现DataSource注入方式

    Spring的三种通过XML实现DataSource注入方式: 1.使用Spring自带的DriverManagerDataSource 2.使用DBCP连接池 3.使用Tomcat提供的JNDI

  4. Spring Cloud Alibaba入门篇

    学习条件 了解web三层架构 熟练应用SSM架构 了解Maven管理工具的使用 熟练使用SpringBoot,以及了解SpringBoot基本原理. 了解部分术语:应用.工具.耦合.负载等 温馨提示: ...

  5. Spring Data JPA 入门篇

    Spring Data JPA是什么 它是Spring基于ORM框架(如hibernate,Mybatis等).JPA规范(Java Persistence API)封装的一套 JPA应用框架,可使开 ...

  6. spring boot 学习入门篇【spring boot项目的搭建以及如何加载jsp界面】

    [ 前言]  Spring Boot 简介:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置, ...

  7. spring List,Set,Map,Properties,array的配置文件注入方式

    虽然不多,但是有时候在实现的时候,我们还是希望某些参数或者属性通过集合()的方式注入进来,比如配置表参数列表,addresslist,亦或是三方库等等.因为这种改动不是很多,经常一时想不起来,今天做个 ...

  8. spring boot(一):入门篇

    构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

  9. Spring Boot(一):入门篇+前端访问后端

    转自:Spring Boot(一):入门篇 什么是Spring Boot Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发 ...

  10. (转)Spring boot(一):入门篇

    https://www.cnblogs.com/ityouknow/p/5662753.html#!comments 构建微服务:Spring boot 入门篇 什么是Spring Boot Spri ...

随机推荐

  1. slice()、substring()、substr()的区别用法

    在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...

  2. web安全-传输安全

    web安全-传输安全 anyproxy 代理服务器在之间可以看到 1.HTTP传输窃听 浏览器-代理服务器-链路-服务器 传输链路窃听篡改 2.HTTP窃听 >* 窃听用户密码 >* 窃听 ...

  3. ipad中icon与launchimage的size

    图标(AppIcon)与启动图(LaunchImage)是开发iOS应用程序必不可少的内容,但是在网络上对于这部分的内容讲解的并不详细,所以花些时间写了这篇文章,希望有需要的朋友可以随时查看 想知道A ...

  4. 常用linux基础命令(持续更新...)

    删除 空目录 rmdir非空目录 rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思 删除文件命令rm -f 文件名将会强行删除文件,且无提 ...

  5. phantomjs截图中文网站网页页面乱码,安装字体解决

    用phantomjs去截取中文页面的网站可能会出现乱码的情况,也就是截图中中文的位置全是方框. 解决办法就是安装字体. 在centos中执行:yum install bitmap-fonts bitm ...

  6. P1891 疯狂LCM

    \(\color{#0066ff}{ 题目描述 }\) 众所周知,czmppppp是数学大神犇.一天,他给众蒟蒻们出了一道数论题,蒟蒻们都惊呆了... 给定正整数N,求LCM(1,N)+LCM(2,N ...

  7. LCA SP913 QTREE2 - Query on a tree II

    SP913 QTREE2 - Query on a tree II 给定一棵n个点的树,边具有边权.要求作以下操作: DIST a b 询问点a至点b路径上的边权之和 KTH a b k 询问点a至点 ...

  8. 【Leetcode】Count and Say

    The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...

  9. 7.Hibernate 检索

    1.Hibernate检索方式 检索方式简介: 导航对象图检索方式:根据已经加载的对象,导航到其他对象.OID检索方式:按照对象的OID来检索对象.Session 的 get() 和 load() 方 ...

  10. java拦截器的使用

    转载: https://www.cnblogs.com/liangblog/p/7234757.html https://blog.csdn.net/reggergdsg/article/detail ...