快速上手Spring

快速上手Spring

一、Ioc创建对象的方式

1.1 通过无参构造创建

  1. User.java

    package com.aishimin.pojo;
    ​
    public class User {
    ​
        private String name;
    ​
        public User(){
            System.out.println("这是User的无参构造");
        }
    ​
        public String getName() {
            return name;
        }
    ​
        public void setName(String name) {
            this.name = name;
        }
    ​
        public void show(){
            System.out.println("name="+name);
        }
    }

     

  2. beans.xml

    <bean id="user" class="com.aishimin.pojo.User">
        <property name="name" value="路飞"/>
     </bean>
  3. 测试类

    public class MyTest {
        @Test
        public void testUser(){
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
            User user = (User) context.getBean("user");
            user.show();
    ​
        }
    }

通过断点测试发现,在程序执行getBean的时候,user就已经创建好了,User对象已经通过无参构造初始化了。

1.2 通过有参构造方法创建

  1. User.java

    package com.aishimin.pojo;
    ​
    public class User {
    ​
        private String name;
    ​
    ​
        public User(String name){
            this.name = name;
        }
        public String getName() {
            return name;
        }
    ​
        public void setName(String name) {
            this.name = name;
        }
    ​
        public void show(){
            System.out.println("name="+name);
        }
    }
  2. beans.xml有三种方式编写

    <!--通过index指定有参构造参数的下标值-->
        <bean id="user" class="com.aishimin.pojo.User">
            <constructor-arg index="0" value="lufei"/>
        </bean><!--    通过有参构造参数的类型设置-->
        <bean id="user" class="com.aishimin.pojo.User">
            <constructor-arg type="java.lang.String" value="路飞"/>
        </bean><!--    通过有参构造参数名字设置-->
        <bean id="user" class="com.aishimin.pojo.User">
            <constructor-arg name="name" value="路飞"/>
        </bean>
  3. 测试

    public class MyTest {
        @Test
        public void testUser(){
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
            User user = (User) context.getBean("user");
            user.show();
    ​
        }
    }

在此处做了一个小测试,证明了我们所用的对象在getBean的时候已经创建完毕了

  1. 编写测试类UserT,只设置空的无参构造

    package com.aishimin.pojo;
    ​
    public class UserT {
        public UserT(){
            System.out.println("UserT被创建了");
        }
    }
  2. beans.xml

    <bean id="userT" class="com.aishimin.pojo.UserT">
  3. 测试

    public class MyTest {
        @Test
        public void testUser(){
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
            User user = (User) context.getBean("user");
            user.show();
    ​
        }
    }

yHOZB4.jpg

可以看出,我们在测试的时候并没有去拿userT的对象,但是在控制台却输出了我们UserT无参构造的方法,由此可见确实在getBean时,我们的对象就已经创建了。

二、Spring配置

别名

alias设置别名,为bean设置别名,可以设置多个别名

<!--设置别名,在获取bean的时候可以使用bean来获取-->
    <alias name="user" alias="userNew"/>

Bean的配置

<!--    通过有参构造参数名字设置-->
<!--    1.id是bean的唯一标识符,如果没有配置id,name就是默认的标识符
        2.如果设置里id,又配置了name,那么name是别名,name可以设置多个别名,之间用逗号空格分隔符隔开
            如果不配置id和name可以通过application.getBean(.class)来获取对象
        3.class是bean的全限定名 = 包名+类名-->
    <bean id="user" class="com.aishimin.pojo.User">
        <constructor-arg name="name" value="路飞"/>
    </bean>

import

团队开发使用import实现。

将多个beans.xml交给一个applicationContext.xml来管理,只需要在application.xml中import即可。

posted @ 2021-02-23 10:20  aishimin  阅读(79)  评论(0)    收藏  举报