Spring回顾第二天

案例

  • jar包导入
    只用导入sping-webmvc即可,Spring需要的其他依赖也会一起被导入进来。

      <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-webmvc</artifactId>
           <version>5.2.7.RELEASE</version>
      	</dependency>	 	   
    
  • 编写一个实体类

    在这里插入代码片
    public class User {
    private Integer id;
    private String name;
    
    public Integer getId() {
        return id;
    }
    
    public void setId(Integer id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public void showUser(){
        System.out.println("我是User类");
    }
    
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }}
    
  • 编写spring配置文件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:在配置文件的名字,没有限制
            class:全路径名字,包名+类名
    -->
    <bean id="user" class="cn.alan.model.User">
    <!--    property:配置实体类属性
            name:并不是属性 , 而是set方法后面的那部分 , 首字母小写
            value:设置的属性的值
    -->
        <property name="id" value="1"/>
        <property name="name" value="alan"/>
    </bean>
    
  • 编写测试类
    public class MyTest {
    
    public static void main(String[] args) {
        //1、根据配置文件创建Spring容器
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    
        //2、获取Spring容器中的bean
        User user = (User) context.getBean("user");
    
        System.out.println(user.toString());
    }
    }
    
  • 输出
    在这里插入图片描述

案例总结

测试类中使用到的对象不需要程序员去手动创建,只需要在applicationContext.xml中进行配置,即可将实体类对象注入到Spring容器中,这样程序员就可以直接到Spring中去获取需要的实体类对象。
上面这个过程就叫控制反转 :

  • 控制 : 谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是由Spring来创建的
  • 反转 : 程序本身不创建对象 , 而变成被动的接收对象 .
  • 依赖注入 : 就是利用set方法来进行注入的.

Spring创建对象的方式

备注:在配置文件加载的时候,Spring中管理的对象都已经初始化了!

  • 通过无参构造方法
    上述的案例,即是通过无参构造
  • 通过有参构造方法
    <!-- 第一种根据index参数下标设置 -->
    <bean id="user" class="cn.alan.model.User">
        <!-- index指构造方法 , 下标从0开始 -->
        <constructor-arg index="0" value="1"/>
        <constructor-arg index="1" value="alan-index"/>
    </bean>
    <!--    第二种根据参数名字进行设置-->
    <bean id="user"  class="cn.alan.model.User">
        <constructor-arg name="id" value="1"/>
        <constructor-arg name="name" value="alan-name"/>
    </bean>
     <!--    第三种根据参数类型进行设置-->
    <bean id="user"  class="cn.alan.model.User">
        <constructor-arg type="java.lang.Integer" value="1"/>
        <constructor-arg type="java.lang.String" value="alan-type"/>
    </bean>
    

Spring配置

  • bean配置

    <!--bean就是java对象,由Spring创建和管理-->
    <!--
       id 是bean的标识符,要唯一,如果没有配置id,name就是默认标识符
       如果配置id了,又配置了name,那么name是别名
       name可以设置多个别名,可以用逗号,分号,空格隔开
       如果不配置id和name,可以根据applicationContext.getBean(.class)获取对象;
    class是bean的全限定名=包名+类名
    -->
    <bean id="hello" name="user user2,user3;h4" class=cn.alan.model.User">
       <property name="name" value="Spring"/>
    </bean>```
    
  • 别名
    alias 设置别名 , 为bean设置别名 , 可以设置多个别名

    <!--设置别名:在获取Bean的时候可以使用别名获取-->
    <alias name="user" alias="userNew"/>
    
  • import
    团队的合作通过import来实现。团队成员在开发过程中可以使用各自的Spring配置文件(applicationContext.xml),最后可以导入、汇总成一个配置文件。

    <import resource="{path}/beans.xml"/>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值