Untitled

1. IOC基本概念:

  1. 控制反转(Inversion of Control,缩写为IoC
  2. 使用IOC目的是为了降低耦合度

2. IOC底层原理

  1. xml解析、工厂模式、反射

3. IOC(接口)

1. BeanFactory

IOC容器的基本实现,是Spring内部的使用接口,不提供开发人员进行使用。
区别:(加载配置文件时不创建对象,在获取对象(使用时)才创建对象)

2. ApplicationContext(一般用这种方式):

BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员使用。
区别:(加载配置文件时就会把配置文件对象进行创建)

3. IOC操作Bean管理

1. 什么是Bean管理

  • Spring创建对象
  • Spring注入属性

2. Bean管理的实现方式

1. 基于 xml 配置文件方式实现
  1. 创建对应的bean.xml文件中使用bean标签,标签里添加对应的属性,即可实现对象的创建。

  2. 创建对象的时候也是默认执行无参构造器完成对象创建。

  3. x 1<!--配置User对象创建-->2<bean id="user" class="com.wnaoii.User"/>
    
  4. 在Bean标签中有许多属性,这里介绍下常用属性

    • id属性:唯一标识,在bean中生成对象的别名。
    • class属性:类全路径(包类路径)
2. 基于 xml 方式注入属性
  1. 使用set方法注入

    1. 常规方式

      public class Book {
          // 创建属性
          private String bname;
      	// 属性对应的set方法
          public void setBname(String bname) {
              this.bname = bname;
          }
      
          public static void main(String[] args) {
              // 建对象
              Book book = new Book();
              // 注入值
              book.setBname("xiaoming");
              System.out.println(book.bname);
          }
      }
      
    2. xml配置文件方式

      • 写好xml配置文件

        <!--配置User对象创建-->
        <bean id="book" class="com.wnaoii.Book">
            <!--
            在bean标签中使用property完成属性注入
            name:类里属性的名字
            value:需要注入的值
            -->
            <property name="bname" value="xiaoming"></property>
        </bean>
        
      • 调用xml配置文件

        public class TestSpring5 {
            @Test
            public void testAdd() {
                // 1.加载spring配置文件
                ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        
                // 2.获取配置创建的对象
                Book book = context.getBean("book",Book.class); // getBean中”book“为xml配置的对象,Book.class表示转换的类型
        
                book.pringtName();
                System.out.println(book);
            }
        }
        
  2. 有参构造注入

    1. 常规方式

      public class Book {
          // 创建属性
          private String bname;
      	
          public Book() {
          }
      	// 有参构造
          public Book(String bname) {
              this.bname = bname;
          }
      
          public static void main(String[] args) {
              // 建对象,有参构造注入值
              Book book = new Book("xiaogang");
              System.out.println(book.bname);
          }
      }
      
    2. xml配置文件方式

      1. 创建类,定义属性,创建对应的有参构造器

        public class orders {
            private String oname;
            private String address;
            
        	// 无参构造不写也行?
            public orders() {
            }
        	
            // 有参构造
            public orders(String oname, String address) {
                this.oname = oname;
                this.address = address;
            }
        }
        
      2. 配置好xml配置文件里的Bean标签

        <!--
            在bean标签中使用constructor-arg完成属性注入
            name:类里属性的名字
            value:需要注入的值
        -->
        <bean id="orders" class="com.wnaoii.Orders">
            <constructor-arg name="oname" value="手机"></constructor-arg>
            <constructor-arg name="address" value="中国"></constructor-arg>
        </bean>
        
      3. 测试类中测试

        public class TestSpring5 {
            @Test
            public void testOrders() {
                // 1.加载spring配置文件
                ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        
                // 2.获取配置创建的对象
                Orders orders = context.getBean("orders", Orders.class);
        
                orders.testOrders();
                System.out.println(orders);
            }
        }
        
  3. P名称空间注入(了解)

    1. 使用 p 名称空间注入,可以简化基于 xml 配置方式
3. 基于注解方式实现
  1. DI:依赖注入,就是注入属性

Untitled

上一篇:WPF隐藏原窗体边框后*缩放


下一篇:使用U盘安装Windows操作系统