栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaEE第一章笔记-Spring基本应用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaEE第一章笔记-Spring基本应用

在使用spring框架,需要配置以下五个基础包

下面通过一个示例演示Spring框架的使用

首先项目层级结构如下:

在接口UserDao中定义一个say()方法:

package com.itheima.ioc;
public interface UserDao {
	public void say();
}

 在Userdao接口的实现类UserDaolmpl中实现接口中say()的方法

package com.itheima.ioc;
public class UserDaoImpl implements UserDao {
	public void say() {
		System.out.println("userDao say hello World !");
	}
}

在Spring中的配置文件applicationContext中配置


 
	
	

可知在配置文件中创建了一个id为userDao的Bean,class属性用于指定需要实例化Bean的类

如图:

 现在创建TestloC测试输出

package com.itheima.ioc;
import org.springframework.context.ApplicationContext;
import 
    org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestIoC {
	public static void main(String[] args) {
		//1.初始化spring容器,加载配置文件
		ApplicationContext applicationContext = 
		    new ClassPathXmlApplicationContext("applicationContext.xml");
		//2.通过容器获取userDao实例
		UserDao userDao = (UserDao) applicationContext.getBean("userDao");
		//3.调用实例中的say()方法
		userDao.say();
	}
}

结果:

现在通过一个案例理解掌握依赖注入(以属性setter方法注入的的方式为例,讲解Spring容器在应用中是如何实现依赖注入)

创建接口UserService

package com.itheima.ioc;
public interface UserService {
	public void say();
}

在UserService接口的实现类UserServicelmpl中实现接口中say()的方法,并声明userDao属性,并添加属性的setter方法

package com.itheima.ioc;
public class UserServiceImpl implements UserService {
	// 声明UserDao属性
	private UserDao userDaoccc;
	// 添加UserDao属性的setter方法,用于实现依赖注入
	public void setUserDaoaaabbb(UserDao userDaoccc) {
		this.userDaoccc = userDaoccc;
	}
	// 实现的接口中方法
	public void say() {
		//调用userDao中的say()方法,并执行输出语句
		this.userDaoccc.say();
		System.out.println("userService say hello World !");
	}
}

在Spring中的配置文件applicationContext中配置,创建id为userService的Bean,将userDao的实例注入到userService中


 
	
	
	
	
	
	
	   
	
	

注:一般情况下name与ref一般同名,但次为了表述其区别特意起名不同以区分

创建测试类TestDl测试输出:

package com.itheima.ioc;
import org.springframework.context.ApplicationContext;
import 
    org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestDI {
	public static void main(String[] args) {
		//1.初始化spring容器,加载配置文件
		ApplicationContext applicationContext = 
             new ClassPathXmlApplicationContext("applicationContext.xml");
		//2.通过容器获取UserService实例
		UserService userService = 
            (UserService) applicationContext.getBean("userService");
		//3.调用实例中的say()方法
		userService.say();
	}
}

结果:

接下来,注重讲解name与ref区别

引用 Spring中<property name =““ ref = ““>标签 name和ref的区别_XiangZ4的博客-CSDN博客

Spring中<property name =““ ref = ““>标签 name和ref的区别

首先我们要知道Spring是通过对象的set方法来进行注入。
ref:引用一个已经存在的对象如下图

name:name属性中的值指的是bean中id所指向的类中的set方法后面的那个字段
在这里插入图片描述 

 

 

 当我们将set后面的字段修改的话就会报错

 之所以setUserDao与property中的name名字必须一致是因为该案例采用了setter方法注入的方式为例。该方式也是实际开发中最常用的一种方式。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287211.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号