0
点赞
收藏
分享

微信扫一扫

Spring的配置文件


Spring配置文件是用来指导Spring工厂进行Bean生产,依赖注入(装配)及Bean实例分发的“图纸”;

Spring配置文件是一个或多个标准的xml文档,applicationContext.xml是Spring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。

Bean

<bean id="user" name="user,user" class="com.zhang.pojo.User">
    <property name="name" value="Spring"/>
</bean>

  1. 如果没有id,没有name,依然可以获取这个对象,但是需要实用类的class对象获取;

User bean = context.getBean(User.class);

  • id指的就是对象的名字;
  • class值就是要实例化的类;
  • name就是别名;
  • 如果有id的时候,name是别名,没有id的话,name就是对象的名字;
  • 在使用别名是,别名可以有多个;

alias

<alias name="user" alias="user"/>

  1. name  就是bean的对象的id;
  2. alias  则是对象的别名;

import

<import resource="classpath*:Beans.xml"/>
<import resource="classpath:Beans.xml"/>
<import resource="file:"/>
<import resource="http:"/>

  1. inport的主要作用就是进行导包,导入另外一个资源,将另外配置文件封装起来;
  1. classpath *  在所有的地方寻找目标文件,效率很低;
  2. classpath   只在classpath中寻找文件,找不到就报错;
  3. file  填写文件路径URL ;
  4. http   填写网络路径URL;

依赖注入DI(dependency injection)

依赖是指将bean对象的创建依赖于Spring容器中,bean对象依赖的资源;

注入是指bean对象所依赖的资源,由Spring容器来设置和装配;

两种注入方法:构造器注入与setter注入:

  • 构造器注入就是我们经常使用的有参和无参构造;
  • setter注入要求被注入的属性,必须有set方法,set方法的名字要求规范;

set+属性名(属性名字母大写)

实例:

创建一个实体类;

public class Student {
    private String name;
    private Address address;
    private String[] books;
    private List<String> hobbys;
    private Map<String,String> card;
    private Set<String> games;
    private String girlFriend; //null
    private Properties info;

创建配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!--suppress SpringFacetInspection -->
<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">

    <!--Address-->
    <bean id="address" class="com.zhang.pojo.Address">
        <property name="address" value="beijing"/>
    </bean>

    <!--student-->
    <bean id="student" class="com.zhang.pojo.Student">

1.常量注入

<!--普通字段-->
<property name="name" value="张三"/>

2.Bean注入

<!--引用其他bean使用ref-->
<property name="address" ref="addr"/>

3.数组的注入

<!--数组的注入-->
<property name="books">
    <array>
        <value>西游记</value>
        <value>水浒传</value>
        <value>红楼梦</value>
        <value>三国演义</value>
    </array>
</property>

4.list注入

<!--List注入-->
<property name="hobbys">
    <list>
        <value>女孩</value>
        <value>代码</value>
        <value>电影</value>
        <value>音乐</value>
    </list>
</property>

5.Map注入

map注入是键值对的形式,使用的标签是entry

<!--Map的注入-->
<property name="card">
    <map>
        <entry key="IdCard" value="666666888888884444"/>
        <entry key="银行卡" value="111122223333444"/>
    </map>
</property>

6.set注入

<!--Set注入-->
<property name="games">
    <set>
        <value>王者荣耀</value>
        <value>贪玩蓝月</value>
        <value>绝地求生</value>
        <value>LOL</value>
    </set>
</property>

7.空值注入

<!--Null空值注入-->
<property name="girlFriend">
    <null/>
</property>

8.Properties注入

Properties  注入使用的是props标签,

<!--Properties注入-->
<property name="info">
    <props>
        <prop key="学号">201932301</prop>
        <prop key="性别">男</prop>
        <prop key="姓名">小明</prop>
    </props>
</property>

测试完成;

p 命名空间注入

利用属性注入

我们平时都是要到bean里面进行注入但是 如果是用  p  命名空间注入,就可以直接到 外面进行注入

xmlns:p="http://www.springframework.org/schema/p"

<!--p:property属性,命名空间注入-->
<bean id="user1" class="com.zhang.pojo.User" p:name="张" p:age="18"/>

 c  命名空间注入

利用构造器注入

xmlns:c="http://www.springframework.org/schema/c"

<!--c:constructor构造器:命名空间注入-->
<bean id="user2" class="com.张.pojo.User" c:name="张" c:age="19"/>

Bean作用域

  1. 在Spring中,组成应用程序的主体及由SpringIOC容器所管理的对象,被称之为Bean,简单讲,bean就是由IOC容器初始化、装配及管理的对象;
  2. 配置文件中定义Bean作用域时,不但可以配置bean的属性以及相互之间的依赖关系,还可以定义bean的作用域,作用域会对bean的生命周期和创建方式产生影响;

类型

说明

singleton

在 Spring 容器中仅存在一个 Bean 实例, Bean 以单例的形式存在,默认值。

prototype

每次从容器中调用 Bean 时,都会返回一个新的实例,即相当于执行 new XxxBean() 的实例化操作。

request

每次 http 请求都会创建一个新的 Bean , 仅用于 WebApplicationContext 环境。request.setAttribute("","")

session

同一个 http Session 共享一个 Bean ,不同的 http Session 使用不同的 Bean,仅用于 WebApplicationContext 环境。session.setAttribute("","")

globalSession

同一个全局 Session 共享一个 bean, 用于 Porlet, 仅用于 WebApplication 环境。application.setAttribute("","")

 

举报

相关推荐

Spring配置文件

spring配置文件

Spring介绍 Spring配置文件

spring配置文件_01

Spring Boot 配置文件

spring配置文件模板

0 条评论