您现在的位置是:首页 > 文章详情

初识 Spring(03)---(XML注入方式 / 注入类型)

日期:2018-08-06点击:558

XML注入方式

1.set 方式注入  2.构造方式注入  3.工厂方式注入

set 方式注入

1.ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

2.public class UserDaoImpl implements UserDao;

3.private UserDao dao;

ClassPathXmlApplicationContext 创建了一个 spring 容器后,产生  UserDao 和 dao  对象,并且将 UserDao对象 设置到 dao 对象的属性中,这是通过 set 方法设置的

文件目录:

代码:配置文件:applicationContext.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"> <bean id="userDao" class="com.neuedu.dao.impl.UserDaoImpl"></bean> <bean id="userService" class="com.neuedu.service.UserService"> <!-- set方法注入 --> <property name="dao" ref="userDao"></property> </bean> </beans> 

Test.java

package com.neuedu.test; import com.neuedu.service.UserService; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); //UserService us= (UserService)ac.getBean("userService"); } } 

UserDaoImpl.java

package com.neuedu.dao.impl; import com.neuedu.dao.UserDao; public class UserDaoImpl implements UserDao{ public UserDaoImpl() { System.out.println("UserDaoImpl构造方法..."); } public void save() { System.out.println("通过oracle数据库将用户信息保存到数据库中"); } } 

UserService.java

package com.neuedu.service; import com.neuedu.dao.UserDao; import com.neuedu.dao.impl.UserDaoImpl; public class UserService { public UserService() { System.out.println("UserService 构造方法..."); } private UserDao dao; public void save() { dao.save(); } public void setDao(UserDao dao) { System.out.println("setUserDao..."); this.dao = dao; } } 

UserDao.java

package com.neuedu.dao; public interface UserDao { public void save(); } 

输出:

构造器方式注入(必须有带参数的构造方法才可以)

代码:配置文件:applicationContext.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"> <bean id="userDao" class="com.neuedu.dao.impl.UserDaoImpl"></bean> <bean id="userService" class="com.neuedu.service.UserService"> <!-- set方法注入 --> <!-- <property name="dao" ref="userDao"></property> --> <!-- 构造方法注入 --> <constructor-arg ref="userDao"></constructor-arg> </bean> </beans> 

UserService.java

package com.neuedu.service; import com.neuedu.dao.UserDao; import com.neuedu.dao.impl.UserDaoImpl; public class UserService { private UserDao dao; public UserService() { System.out.println("UserService 构造方法..."); } public UserService(UserDao dao) { System.out.println("带参数的UserService"); this.dao = dao; } public void save() { dao.save(); } public void setDao(UserDao dao) { System.out.println("setUserDao..."); this.dao = dao; } } 

输出:

XML注入类型

1.简单属性  2. 对象  3.集合

简单属性

文件目录:

代码:配置文件:applicationContext.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"> <bean id="userDao" class="com.neuedu.dao.impl.UserDaoImpl"></bean> <bean id="userService" class="com.neuedu.service.UserService"> <!-- set方法注入 --> <!-- <property name="dao" ref="userDao"></property> --> <!-- 构造方法注入 --> <constructor-arg ref="userDao"></constructor-arg> </bean> <bean id="person" class="com.neudeu.po.Person"> <property name="name" value="zhang"></property> <property name="age" value="30"></property> </bean> </beans> 

Test.java

package com.neuedu.test; import com.neudeu.po.Person; import com.neuedu.service.UserService; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); //UserService us= (UserService)ac.getBean("userService"); Person person = ac.getBean(Person.class); System.out.println(person); } } 

Person.java

package com.neudeu.po; public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } } 

输出:

集合

文件目录:

代码:配置文件:applicationContext.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"> <bean id="userDao" class="com.neuedu.dao.impl.UserDaoImpl"></bean> <bean id="userService" class="com.neuedu.service.UserService"> <!-- set方法注入 --> <!-- <property name="dao" ref="userDao"></property> --> <!-- 构造方法注入 --> <constructor-arg ref="userDao"></constructor-arg> </bean> <bean id="FLL" class="com.neudeu.po.Car"> <property name="brand" value="法拉利"></property> <property name="price" value="3000000"></property> </bean> <bean id="BW" class="com.neudeu.po.Car"> <property name="brand" value="宝马"></property> <property name="price" value="300000"></property> </bean> <bean id="BYD" class="com.neudeu.po.Car"> <property name="brand" value="比亚迪"></property> <property name="price" value="30000"></property> </bean> <bean id="person" class="com.neudeu.po.Person"> <property name="name" value="zhang"></property> <property name="age" value="30"></property> <property name="cars"> <list> <ref bean="FLL"/> <ref bean="BW"/> <ref bean="BYD"/> </list> </property> </bean> </beans> 

Person.java

package com.neudeu.po; import java.util.List; public class Person { private String name; private int age; private List<Car> cars; public List<Car> getCars() { return cars; } public void setCars(List<Car> cars) { this.cars = cars; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + ", cars=" + cars + "]"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 

Car.java

package com.neudeu.po; public class Car { private String brand; private double price; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } @Override public String toString() { return "Car [brand=" + brand + ", price=" + price + "]"; } } 

输出:

代码:配置文件:applicationContext.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"> <bean id="userDao" class="com.neuedu.dao.impl.UserDaoImpl"></bean> <bean id="userService" class="com.neuedu.service.UserService"> <!-- set方法注入 --> <!-- <property name="dao" ref="userDao"></property> --> <!-- 构造方法注入 --> <!-- <constructor-arg ref="userDao"></constructor-arg> --> <property name="dao"> <bean class="com.neuedu.dao.impl.UserDaoImpl"></bean> </property> </bean> <bean id="FLL" class="com.neudeu.po.Car"> <property name="brand" value="法拉利"></property> <property name="price" value="3000000"></property> </bean> <bean id="BW" class="com.neudeu.po.Car"> <property name="brand" value="宝马"></property> <property name="price" value="300000"></property> </bean> <bean id="BYD" class="com.neudeu.po.Car"> <property name="brand" value="比亚迪"></property> <property name="price" value="30000"></property> </bean> <bean id="person" class="com.neudeu.po.Person"> <property name="name" value="zhang"></property> <property name="age" value="30"></property> <property name="cars"> <list> <bean class="com.neudeu.po.Car"> <property name="brand" value="红旗"></property> <property name="price" value="300000"></property> </bean> <ref bean="FLL"/> <ref bean="BW"/> <ref bean="BYD"/> </list> </property> </bean> </beans> 

Test.java

package com.neuedu.test; import com.neudeu.po.Person; import com.neuedu.service.UserService; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); } } 

输出:

原文链接:https://yq.aliyun.com/articles/623910
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章