0
点赞
收藏
分享

微信扫一扫

二 快速上手Spring

心如止水_c736 2022-04-26 阅读 36

快速上手Spring

快速上手Spring

HelloSpring

1.编写一个hello实体类

public class Hello {
    private String name;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "Hello{" +
                "name='" + name + '\'' +
                '}';
    }
}

2.编写我们的配置Bean文件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-3.0.xsd">
    <!--    使用Spring来创建对象,在Spring这些都称为Bean
            类型 变量名 =new 类型();
            Hello hello=new Hello();

            id=变量名
            class=new 的对象;
            property 相当于给对象的属性设置的一个值
    -->
    <bean id="hello" class="com.pojo.Hello">
        <property name="name" value="hello"/>
    </bean>
</beans>

3.MyTest

public class MyTest {
    public static void main(String[] args) {
        //ClassPathXmlApplicationContext:可以加载类路径下的配置文件,要求配置文件必须在类路径之下。
        //获取Spring的上下文对象!
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        //我们的对象都在Spring中管理了,我们要使用,直接在里面去取出来就可以了!
        //getBean : 参数即为spring配置文件中bean的id
       Hello hello=(Hello) context.getBean("hello");
        System.out.println(hello.toString());
    }
}
  • Hello 对象是谁创建的 ? 【hello 对象是由Spring创建的
  • Hello 对象的属性是怎么设置的 ? hello 对象的属性是由Spring容器设置的

这个过程就叫控制反转 :

  • 控制 : 谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是由Spring来创建的
  • 反转 : 程序本身不创建对象 , 而变成被动的接收对象 .

依赖注入 : 就是利用set方法来进行注入的.

IOC是一种编程思想,由主动的编程变成被动的接收

OK , 到了现在 , 我们彻底不用再程序中去改动了 , 要实现不同的操作 , 只需要在xml配置文件中进行修改 , 所谓的IoC,一句话搞定 : 对象由Spring 来创建 , 管理 , 装配 !

思考

  • Hello 对象是谁创建的 ? 【hello 对象是由Spring创建的
  • Hello 对象的属性是怎么设置的 ? hello 对象的属性是由Spring容器设置的

这个过程就叫控制反转 :

  • 控制 : 谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是由Spring来创建的
  • 反转 : 程序本身不创建对象 , 而变成被动的接收对象 .

依赖注入 : 就是利用set方法来进行注入的.

IOC是一种编程思想,由主动的编程变成被动的接收

IOC创建方式

1.使用无参构造创建对象,默认!

User

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);
    }
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

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-3.0.xsd">
    <bean id="user" class="com.pojo.User">
        <property name="name" value="loveyourself"/>
    </bean>
</beans>

MyTest

public class MyTest {
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        User user=(User) context.getBean("user");
        user.show();
    }
}
//结果可以发现,在调用show方法之前,User对象已经通过无参构造初始化了!

2.通过有参构造方法来创建。

  1. 下标赋值

    <!-- 第一种根据index参数下标设置 -->
    <bean id="userT" class="com.kuang.pojo.UserT">
       <!-- index指构造方法 , 下标从0开始 -->
       <constructor-arg index="0" value="loveyourself"/>
    </bean>
    
  2. 类型赋值

     <!--第二种,通过类型创建,不建议使用!-->
        <bean id="user" class="com.pojo.User">
             <constructor-arg type="java.lang.String" value="loveyourself"/>
        </bean>
    
  3. 参数名赋值

    <!--第三种,通过类型创建,不建议使用!-->
        <bean id="user" class="com.pojo.User">
            <constructor-arg name="name" value="loveyourself"/>
        </bean>
    

总结:在配置文件(applicationContext)加载的时候,容器中管理的对象就已经初始化了!

Spring配置

  1. 别名

    <bean id="user" class="com.pojo.User">
            <constructor-arg name="name" value="loveyourself"/>
        </bean>
        <!--设置别名:在获取Bean的时候可以使用别名获取-->
        <alias name="user" alias="userbieming"/>
     <!--        User user=(User) context.getBean("userbieming");
    -->
    
    
    
  2. Bean的配置

    <!--bean就是java对象,由Spring创建和管理-->
    <!--id:bean的唯一标识符,也就是相当于我们学的对象名
             class: bean 对象所对应的权限定名:包名+类型
              name:  也是别名,而且name可以同时取多个别名-->
        <bean id="userT" class="com.pojo.UserT" name="userT2,userT3">
                <property name="name" value="loveyourself"/>
        </bean>
    
  3. import

    这个import一般用于团队开发使用,它可以将多个配置文件,导入合并为一个假设,现在项目中有多个人开发,这三个人复制不同的类开发,不同的类需要注册在不同的bean中,我们可以利用import将所有人的beans.xml合并为一个总的!

    <import resource="applicationContext2.xml"/>
    
举报

相关推荐

0 条评论