Spring的配置和使用

依赖:

在maven 构建的spring项目中,需要导入以下依赖

       <!-- AOP需要的包 -->
       <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.6</version> </dependency>
  <!--使用spring-webmvc可自动导入其他依赖-->
       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.4</version>
        </dependency>
   <!--整合Mybatis-->
    <dependency>
     <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
     <version>2.0.2</version>
    </dependency>
    <!--整合Mybatis需要使用spring自己的JDBC-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
    <!--lombok  mybatis 简化开发使用-->
    <dependency>
     <groupId>org.projectlombok</groupId>
     <artifactId>lombok</artifactId>
     <version>1.18.16</version>
    </dependency>

配置文件:

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
        https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--    类型 变量名 = new 类型()-->
<!--     id === 变量名-->
<!--    class===  类型()-->
<!--    property===属性赋值,SET注入-->
    <bean id="user" class="com.wpz.User">
        <property name="str" value="Hello come on!"/>
        <!-- collaborators and configuration for this bean go here -->
    </bean>
    <bean id="DaoImpl" class="com.wpz.dao.UserDaoImpl"></bean>
    <!--别名-->
    <alias name="DaoImpl" alias="dao"></alias>
    <!-- more bean definitions go here -->
</beans>

<bean> 标签:

<bean> 标签创建对象 与 new 实例的对比

<!--    类型 变量名 = new 类型()-->
<!--     id === 变量名-->
<!--    class===  类型()-->
<!--    property===属性赋值,SET注入-->
    <bean id="user" class="com.wpz.User">
        <property name="str" value="Hello come on!"/>
        <!-- collaborators and configuration for this bean go here -->
    </bean>
    <bean id="DaoImpl" class="com.wpz.dao.UserDaoImpl"></bean>
    <!--别名-->
    <alias name="DaoImpl" alias="dao"></alias>

bean对象元素的注入

//实例类
public
class Student { private String name; private String wifi; private Adress adress; private String[] books; private List<String> hobbies; private Map cards; private Properties prop; private Set<String> games; }

配置:

 <bean id="addr" class="com.wpz.Adress">
        <property name="addr" value="DaLian"></property>
    </bean>
    <bean id="stu" class="com.wpz.Student">
<!--        第一种 普通值注入-->
        <property name="name" value="wpz"/>
<!--        第二种 bean注入 ref-->
        <property name="adress" ref="addr"/>
<!--        数组-->
        <property name="books">
            <array>
                <value>红楼梦</value>
                <value>周易</value>
                <value>吕氏</value>
            </array>
        </property>
<!--        list-->
        <property name="hobbies">
            <list>
                <value>听歌</value>
                <value>看戏</value>
            </list>
        </property>
<!--        map-->
        <property name="cards">
            <map>
                <entry key="Id" value="220714199912121234"></entry>
                <entry key="stuId" value="20082041"></entry>
            </map>
        </property>
<!--        set-->
        <property name="games">
            <set>
                <value>QQQ</value>
                <value>WWW</value>
                <value>EEE</value>
            </set>
        </property>
<!--        properties-->
        <property name="prop">
            <props>
                <prop key="name">root</prop>
                <prop key="pwd">admin</prop>
            </props>
        </property>
<!--        null-->
        <property name="wifi">
            <value>null</value>
        </property>
    </bean>
IOC 创建对象的方式
  1. 默认使用无参构造方法构造(如上)

  2. 有参构造时

    1. 通过下标赋值 <constructor-arg index ="0" value="xxx"/>

    2. 通过类型 ,不建议使用 <constructor-arg type="java.lang.string" value="xxx"/>

    3. 直接通过参数名来设置 <constructor-arg name="username" value="xxx"/> ----常用

bean对象的属性

  1. id 唯一标识符,相当于对象名

  2. class bean对象所对应的全限定名,类型

  3. name 也是别名,可以同时取多个别名,用逗号或空格或分号隔开

  4. scope 作用域范围 :singleton(默认)、prototype(原型模式 每次从容器中get 的时候,都产生一个新对象)、request、session

P 标签和C 标签:

 配置:

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

使用:

<!--    需要无参构造-->
    <bean id="usr" class="com.wpz.User" p:str="wwwpz"></bean>
<!--    需要有参构造-->
    <bean id="usr" class="com.wpz.User" c:str="ddd" autowire="byName"></bean>

<import>

团队开发时,通过import将配置文件合并汇总

<import resouce = "beans.xml"/>

 

posted @ 2021-03-10 20:39  少时也曾爱白衣  阅读(96)  评论(0编辑  收藏  举报