博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring-IOC实现[02-XML配置文件方式]
阅读量:7273 次
发布时间:2019-06-29

本文共 6973 字,大约阅读时间需要 23 分钟。

hot3.png

XML配置方式

属性注入

构造注入: 创建有参构造方法,同时必须创建无参构造方法

在这里插入图片描述

applicatio.xml中注入

还可以通过下标定位参数

<

测试结果

在这里插入图片描述

设置注入

Java对象提供对象的setter方法

有参构造不是必须的,但是无参构造方法是必须的! set方法注入就是利用对象属性的set方法给对像赋值,相当于使用无参构造方法创建一个user对象,然后调用对象中的set方法给各个属性赋值

package com.sxt.bean;public class User {	private Integer id;		private String name;		private Integer age;	public Integer getId() {		return id;	}	@Override	public String toString() {		return "User [id=" + id + ", name=" + name + ", age=" + age + "]";	}		public User() {		super();	}	public void setId(Integer id) {		this.id = id;	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public Integer getAge() {		return age;	}	public void setAge(Integer age) {		this.age = age;	}}

application.xml配置

测试

在这里插入图片描述

P名称空间注入

p名称空间注入本质上还是set方法注入,只是写法不同

package com.sxt.bean;public class User {	private Integer id;		private String name;		private Integer age;	public Integer getId() {		return id;	}	@Override	public String toString() {		return "User [id=" + id + ", name=" + name + ", age=" + age + "]";	}		public User() {		super();	}	public void setId(Integer id) {		this.id = id;	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public Integer getAge() {		return age;	}	public void setAge(Integer age) {		this.age = age;	}}

application.xml配置

测试

在这里插入图片描述

对像,数组,list集合,map和Properties属性注入的XML配置方式

User类和Cat类

package com.sxt.bean;import java.util.Arrays;import java.util.List;import java.util.Map;import java.util.Properties;public class User {	private Integer id;		private String name;		private Integer age;	private Cat cat;//对象注入		private Cat[] cats;//数组注入		private List
stu;//集合注入 private Map
maps;//map注入 private Properties prope;//Properties 属性注入 @Override public String toString() { return "User [id=" + id + ", name=" + name + ", age=" + age + ", cat=" + cat + ", cats=" + Arrays.toString(cats) + ", stu=" + stu + ", maps=" + maps + ", prope=" + prope + "]"; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Cat getCat() { return cat; } public void setCat(Cat cat) { this.cat = cat; } public Cat[] getCats() { return cats; } public void setCats(Cat[] cats) { this.cats = cats; } public List
getStu() { return stu; } public void setStu(List
stu) { this.stu = stu; } public Map
getMaps() { return maps; } public void setMaps(Map
maps) { this.maps = maps; } public Properties getPrope() { return prope; } public void setPrope(Properties prope) { this.prope = prope; } public User() { super(); } }
package com.sxt.bean;public class Cat {	private String nick;		private String color;	public String getNick() {		return nick;	}	public void setNick(String nick) {		this.nick = nick;	}	public String getColor() {		return color;	}	public void setColor(String color) {		this.color = color;	}}

application.xml配置

admin
123

测试

package com.sxt.test;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.Set;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.sxt.bean.Cat;import com.sxt.bean.User;public class UserTest {	@Test	public void test() {		ApplicationContext ac = new ClassPathXmlApplicationContext("application.xml");		User bean = (User) ac.getBean(User.class);		System.out.println(bean);		System.out.println("打印数组");		Cat[] cats = bean.getCats();		for (Cat cat : cats) {			System.out.println(cat.getNick()+"+"+cat.getColor());		}		System.out.println("打印list集合");		List
stu = bean.getStu(); for (Cat cat : stu) { System.out.println(cat.getNick()+"+"+cat.getColor()); } System.out.println("打印map集合"); Map
maps = bean.getMaps(); Set
set = maps.keySet(); for (String sys : set) { System.out.println(maps.get(sys)+"+"+sys); } System.out.println("打印Properties 属性"); Properties prope = bean.getPrope(); System.out.println(prope.getProperty("username")+"+"+prope.getProperty("password")); }}

在这里插入图片描述

创建综合案例

引入相关jar包

在这里插入图片描述

1.创建项目dao层,service层,和他们实现类

在这里插入图片描述

package com.sxt.dao;/** * dao层代码 * @author Administrator * */public interface IUserDao {	String add(String msg);}
package com.sxt.dao.impl;import com.sxt.dao.IUserDao;/** * dao层实现类代码 * @author Administrator * */public class UserDaoImpl implements IUserDao{		@Override	public String add(String msg) {		System.out.println("----->"+msg);		return "hello";	}}
package com.sxt.service;/** * service层代码 * @author Administrator * */public interface IUserService {	String add(String msg);}
package com.sxt.service.impl;import com.sxt.dao.IUserDao;import com.sxt.service.IUserService;/** * service层实现类代码 * @author Administrator * */public class UserServiceImpl implements IUserService{	private IUserDao dao;		/**	 * 这是设值注入的方法	 * @param dao	 */	public void setDao(IUserDao dao) {		this.dao = dao;	}	@Override	public String add(String msg) {		return dao.add(msg);	}}

2.创建Controller层

package com.sxt.controller;import com.sxt.service.IUserService;/** * controller层代码 * @author Administrator * */public class UserConrtroller {		private IUserService userService;	/**	 * 	 * 这是设值注入的方法 	 * @param userService	 */	public void setUserService(IUserService userService) {		this.userService = userService;	}	public void add(String msg) {		System.out.println("-------"+userService.add(msg));	}}

3.在application.xml中注册

4.测试

public class Test {	public static void main(String[] args) {		ApplicationContext ac = new ClassPathXmlApplicationContext("application.xml");		UserConrtroller bean = ac.getBean(UserConrtroller.class);		bean.add("aaa");	}}

测试结果

转载于:https://my.oschina.net/u/4116655/blog/3037746

你可能感兴趣的文章
TreeSet实现排序接口
查看>>
scws分词 自定义词库的方法
查看>>
Qt开发环境如何部署Mac OS(1)
查看>>
10大iOS开发者最喜爱的类库
查看>>
合并数组去重
查看>>
Windows使用MinGW_w64安装gcc
查看>>
Java URLClassLoader实现插件功能开发
查看>>
Thread线程的停止与Timer定时器的停止方法
查看>>
spring MVC自定义action名称
查看>>
python如何识别字符串有多少个中文字符
查看>>
MyEclipse10安装checkStyle与findBugs插件及基本使用
查看>>
MAC 安装更新 ANT
查看>>
微软新ML框架 interpret-尝试
查看>>
创建可序列化的自定义数据结构
查看>>
ios SDWebImage
查看>>
innobackupex部分备份
查看>>
mongodb查询速度慢是什么原因?
查看>>
shell top解析
查看>>
Spring RestTemplate 详解
查看>>
HTML5编程之旅 第5站Web Workers
查看>>