Spring_day1

SSH:Struct2 + Spring + Hibernate
SSM:SpringMvc + Spring + Mybatis
优点:
Spring就是一个轻量级的控制反转(IOC)和面向切面编程的框架。
1.Spring是一个开源的免费框架(容器)!
2.Spring是一个轻量级的、非入侵式的框架!
3.控制反转(IOC),面向切面编程(AOP)!
4.支持事物的处理,对框架整合的支持!

Spring七大模块
在这里插入图片描述

Spring boot:一个快速开发的脚手架,基于Spring boot可以快速开发微服务,约定大于配置
	学习Spring boot的前提是完全掌握spring和SpringMVC,承上启下的作用
Spring cloud:基于Spring boot实现的

在这里插入图片描述
IOC本质
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
IOC操作Bean管理

1.什么是Bean管理
(0)Bean管理指的是两个操作
(1)Spring创建对象
(2)Spring注入属性
2.Bean管理操作有两种方式
(1)基于xml配置文件方式实现
(2)基于注解方式实现

IOC操作Bean管理(基于xml方式)

1.基于xml方式创建对象
(1)在spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象创建
(2)在bean标签有很多属性,介绍常用的属性
*id属性:唯一标识
*class属性:类全路径(包类路径)
(3)创建对象时候,默认执行无参构造方法完成对象创建
2.基于xml方式注入属性
(1)DI:依赖注入,就是注入属性
第一种注入方式:使用set方法进行注入
<!--2.set方法注入属性-->
<!--    <bean id="book" class="com.kpp.spring5.Book" p:bname="明朝那些事" p:bauthor="明月">-->
<!--    </bean>-->
<bean id="book" class="com.kpp.spring5.Book">
    <property name="bname" value="hello"></property>
第二种注入方式:使用有参构造函数进行注入
<!--有参构造注入属性-->
<bean id="order" class="com.kpp.spring5.Order">
    <constructor-arg name="oname" value="abc"></constructor-arg>
    <constructor-arg name="address" value="china"></constructor-arg>
<!--<constructor-arg index="0" value=""></constructor-arg>-->
<!--0表示有参构造函数里面的第一个参数-->
</bean>
3.p名称空间注入
(1)添加p名称空间在配置文件中
xmlns:p="http://www.springframework.org/schema/p"2<bean id="book" class="com.kpp.spring5.Book" p:bname="明朝那些事" p:bauthor="明月"></bean>

IOC操作Bean管理(xml注入其他类型属性)

1.属性类型为自定义类
(1)ref
<bean id="userDaoImpl" class="com.kpp.spring5.DAO.UserDaoImpl"></bean>
<bean id="userService" class="com.kpp.spring5.service.UserService">
    <!--注入userDao对象
    name属性值:类里面属性名称
    ref属性:创建的userDao对象的bean标签id值
    -->
    <property name="userDao" ref="userDaoImpl"></property>
</bean>
(2)内部bean
<!--内部bean-->
<bean id="emp" class="com.kpp.spring5.bean.Emp">
    <!--设置两个普通属性-->
    <property name="ename" value="lucky"></property>
    <property name="gender" value="male"></property>
    <!--设置对象类型属性-->
    <property name="dept">
        <bean id="dept" class="com.kpp.spring5.bean.Dept">
            <property name="dname" value="kaifabu"></property>
        </bean>
    </property>
</bean>3)级联赋值
<bean id="emp" class="com.kpp.spring5.bean.Emp">
    <!--设置两个普通属性-->
    <property name="ename" value="lucky"></property>
    <property name="gender" value="male"></property>
    <!--级联赋值-->
    <property name="dept" ref="dept"></property>
    <property name="dept.dname" value="技术部"></property>
</bean>
<bean id="dept" class="com.kpp.spring5.bean.Dept">
    <property name="dname" value="财务部"></property>
</bean>
<!--null值-->
<!--        <property name="bauthor">-->
<!--            <null/>-->
<!--        </property>-->

<!--属性值包含特殊符号
(1)<>进行转义&lt;&gt;
(2)把带特殊符号的内容写到CDATA
-->
<property name="bauthor">
    <value><![CDATA[<<nanjing>>]]></value>
</property>

数组,List,Map等属性注入

<!--集和类型属性的注入-->
<bean id="stu" class="com.kpp.collectiontype.Stu">
    <!--数组类型属性的注入-->
    <property name="course">
        <array>
            <value>java课程</value>
            <value>数据库</value>
            <value>数据结构</value>
        </array>
    </property>
    <!--List类型属性的注入-->
    <property name="list">
        <list>
            <value>kpp</value>
            <value>zxy</value>
        </list>
    </property>
    <!--Map类型属性的注入-->
    <property name="maps">
        <map>
            <entry key="JAVA" value="25"></entry>
            <entry key="MYSQL" value="44"></entry>
        </map>
    </property>
    <!--Set类型属性的注入-->
    <property name="sets">
        <set>
            <value>C语言</value>
            <value>spring</value>
        </set>
    </property>
    <!--List集和类型注入,值是对象-->
    <property name="courseList">
        <list>
            <ref bean="course1"></ref>
            <ref bean="course2"></ref>
            <ref bean="course3"></ref>
        </list>
    </property>
</bean>
<!--创建多个course对象-->
<bean id="course1" class="com.kpp.collectiontype.Course">
    <property name="cname" value="spring"></property>
</bean>
<bean id="course2" class="com.kpp.collectiontype.Course">
    <property name="cname" value="java"></property>
</bean>
<bean id="course3" class="com.kpp.collectiontype.Course">
    <property name="cname" value="mybaties"></property>
</bean>
util类型提取
(1)配置文件
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
                            https://www.springframework.org/schema/beans/spring-beans.xsd
                            http://www.springframework.org/schema/util
                            https://www.springframework.org/schema/util/spring-util.xsd">
<!--提取list集和类型属性注入-->
<util:list id="bookist" >
    <value>三国</value>
    <value>西游</value>
    <value>红楼梦</value>
</util:list>
<!--提取list集和类型属性注入使用-->
<bean id="book" class="com.kpp.collectiontype.Book">
    <property name="bookList" ref="bookist"></property>
</bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值