|
@@ -1,5 +1,7 @@
|
|
|
-package com.sf;
|
|
|
+package com.sf.ioc;
|
|
|
|
|
|
+import com.sf.ioc.simple.Role;
|
|
|
+import com.sf.ioc.simple.User;
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
import org.springframework.context.ApplicationContext;
|
|
|
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
|
@@ -10,7 +12,7 @@ public class TestBean {
|
|
|
public void test(){
|
|
|
// 要创建bean 需要使用spring提供的容器 (context 上下文)
|
|
|
// 应用容器 是个接口
|
|
|
- ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
|
|
|
+ ApplicationContext context = new ClassPathXmlApplicationContext("ioc/bean.xml");
|
|
|
User user = (User) context.getBean("user");
|
|
|
// 调用了无参构造器 如果有代码块 也会调用代码块
|
|
|
System.out.println(user);
|
|
@@ -21,7 +23,7 @@ public class TestBean {
|
|
|
|
|
|
@Test
|
|
|
public void testOther(){
|
|
|
- ApplicationContext context = new ClassPathXmlApplicationContext("bean-other.xml");
|
|
|
+ ApplicationContext context = new ClassPathXmlApplicationContext("ioc/bean-other.xml");
|
|
|
// Object getBean(String name) throws BeansException;
|
|
|
Role role = (Role)context.getBean("role");
|
|
|
System.out.println(role);
|
|
@@ -29,7 +31,7 @@ public class TestBean {
|
|
|
|
|
|
@Test
|
|
|
public void testBean(){
|
|
|
- ApplicationContext context = new ClassPathXmlApplicationContext("bean-other.xml");
|
|
|
+ ApplicationContext context = new ClassPathXmlApplicationContext("ioc/bean-other.xml");
|
|
|
// 通过id获取对象
|
|
|
Role role0 = (Role)context.getBean("role");
|
|
|
System.out.println(role0);
|
|
@@ -76,7 +78,7 @@ public class TestBean {
|
|
|
|
|
|
@Test
|
|
|
public void testAll(){
|
|
|
- ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
|
|
|
+ ApplicationContext context = new ClassPathXmlApplicationContext("ioc/bean.xml");
|
|
|
Role role = context.getBean("role",Role.class);
|
|
|
System.out.println(role);
|
|
|
// User user = context.getBean("role",User.class);
|
|
@@ -86,8 +88,8 @@ public class TestBean {
|
|
|
@Test
|
|
|
public void testConst(){
|
|
|
// 这一行 可以一次性初始化所有配置的bean 直接创建出对象 存入容器中
|
|
|
- ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
|
|
|
- // 只是从容器中取出 id="user1" && class="com.sf.User"
|
|
|
+ ApplicationContext context = new ClassPathXmlApplicationContext("ioc/bean.xml");
|
|
|
+ // 只是从容器中取出 id="user1" && class="com.sf.simple.User"
|
|
|
// 这里因为配置了构造器参数 而不使用无参构造器 使用对应的有参构造器
|
|
|
User user1 = context.getBean("user1",User.class);
|
|
|
System.out.println(user1);
|
|
@@ -95,10 +97,10 @@ public class TestBean {
|
|
|
|
|
|
@Test
|
|
|
public void testSpecial(){
|
|
|
- ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
|
|
|
+ ApplicationContext context = new ClassPathXmlApplicationContext("ioc/bean.xml");
|
|
|
// 如果配置了属性值为null 会调用对应的set方法 赋值为null
|
|
|
// 以避免对象在初始化时已经有值的情况
|
|
|
- User user = context.getBean("user2",User.class);
|
|
|
+ User user = context.getBean("user2", User.class);
|
|
|
System.out.println(user);
|
|
|
|
|
|
// String str = "\"";
|
|
@@ -106,7 +108,7 @@ public class TestBean {
|
|
|
|
|
|
@Test
|
|
|
public void testRef(){
|
|
|
- // <bean id="user" class="com.sf.User">
|
|
|
+ // <bean id="user" class="com.sf.simple.User">
|
|
|
// <!-- 在bean标签下 有一个子标签 property 就是属性的意思 -->
|
|
|
// <!-- property标签 自己的标签属性有 name 和 value 对应变量名和变量的值 -->
|
|
|
// <!-- 本质上是调用属性的set方法 官网上叫做set注入-->
|
|
@@ -114,7 +116,7 @@ public class TestBean {
|
|
|
// <property name="desc" value="something"></property>
|
|
|
// <property name="role" ref="role"></property>
|
|
|
// </bean>
|
|
|
- ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
|
|
|
+ ApplicationContext context = new ClassPathXmlApplicationContext("ioc/bean.xml");
|
|
|
User user = context.getBean("user",User.class);
|
|
|
System.out.println(user);
|
|
|
// 正常来讲 xml中的bean是按照先后顺序创建的
|