黑马32期Spring学习笔记01

ps:刘悦东老师讲的非常好,视频里也有配套的xmind文档,但是还是一边听课一边用Typora记了下自己认为比较重要的知识点。

spring1--一个可以装下任何对象的容器

一、安装环境

1.导入需要用的包和日志包

2.创建一个实体类对象

3.在src下创建一个applicationContext.xml进行配置

4.约束导入:<beans>里进行edit Namespace操作---增加xsi和一个cateloge spring4.2</beans>

5.在xml里将User对象交给spring容器管理

二、spring概念

1.IOC:反转控制

将我们创建对象的方式反转,即使用spring之后,对象的创建和依赖关系由spring创建和注入

2.DI:依赖注入

实现IOC思想需要DI的支持

注入方式:

  • set方法注入

  • 构造方法注入

  • 字段注入

注入类型:

  • 值类型注入

  • 引用类型注入

3.applicationContext&BeanFactory

BeanFactory是spring的原始接口,实现类功能较为单一,它的特点是每次在获得对象时才会创建对象

ApplicationContext:

  • 每次容器启动时就会创建容器中配置的所有对象

  • 提供了更对丰富的功能

  • 从类路径下加载配置文件:ClassPathXmlApplicationContext

  • 从硬盘绝对路径下加载配置文件: FileSystemXmlApplicationContext(“d:/xxx/yyy/xxx”)

web开发中使用ApplicationContext,硬件资源匮乏时使用BeanFactory

三、spring xml配置详解

1.Bean元素

  • Bean元素:使用该元素描述需要spring容器管理的对象

  • name属性:给被管理对象取个名字,会的对象时根据该名称获得,可以重复且可以使用特殊字符。 --以前是id但是不能重复和特殊字符

  • class:对被管理对象的完整类名(copy qulitiy。。)

    Bean进阶---------------------------------------------

    scope属性

    singleton(默认值):单例对象,即被标识为单例的对象在spring容器中只会存在一个实例

    prototype: 多例原型,被标识为多例的对象,每次再获得才会创建,每次创建都是新对象,与上面截图相反

    request:web环境下,与request生命周期一致

    session:web环境下,与session生命周期一致

    生命周期属性

2.spring创建对象的方式

  • 空参构造法,在原对象中创建一个构造方法

  • 静态工厂 :重新创建一个工厂对象,在工厂内手动添加方法,最后return new 对象#与上面不同的在于因为是手动添加的对象方法,所以要在bean元素下添加一个factory-method=“方法名”

  • 实例工厂:与静态工厂相似,只是创建对象时不用static,多配置一个bean元素

3.spring分模块配置

4.spring中的属性注入

  • set方法注入

     

    值类型
    <property name="name" value="tom">
    //为car属性注入下方的car对象
    <property name="car" ref="car"></property>
    对象类型
    <bean name="car" class="cn.itcast.bean.Car">
    <property name="name" value="兰博基尼"></property>
    <property name="color" value="黄色"></property>

     

  • 构造函数注入

    通过type、index、name属性可以准确定位到一个构造函数

    <bean ....>
    <constructor-arg name="name" value="jerry"></constructor-arg>
    <constructor-arg name="car" ref="car"></constructor-arg>
    </bean>
    //指定首先调用哪个参数index="0"--1--2等等0最大
    //当有两个构造函数都是有name参数和car类型,就要用type,type="java.lang.integer"
    ​
    ​
  • p名称空间注入

    插入配置文件

    <bean name="user3" class="cn.itcast.bean.User" p:name="jack" p:age="20" p:car-ref="car">

  • spel注入

    值和属性调用其他bean里的值

 

在 Action中获得容器

5.复杂类型注入

数组

<property name="arr" value="tom"></property>
​
<property name="arr">
  <array>
    <value>tom</value>
    <value>jerry</value>
    <ref bean="user4"/>
  </array>
</property>

List与set注入一样

<property name="list"value="tom"></property>
​
<property name="list">
  <list>
    <value>tom</value>
    <value>jerry</value>
    <ref bean="user4"/>
  </list>
</property>

Map

<property name="map">
  <map>
    <entry key=" " value=" ">
    <entry key=" " value-ref=" ">
    <entry key-ref=" " value-ref=" ">
  </map>
</property>

properties

四、将spring容器应用到struts-crm项目中

1.导入包4+2+1

2.将Service对象及Dao对象配置到spring容器中

在service层删除new,生成set方法

3.在Action中获得容器中的Service对象

web.xml中配置容器随项目启动在Action中获得容器

 

在Action中获得容器

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值