spring框架简单注入方式

15 篇文章 0 订阅

1、Spring框架

IOC:反转控制(查找资源的被动方式)

AOP:面向切面编程(声明式事务)

2、Spring之HelloWorld

1.搭建环境

    a.创建普通的javaProject.

  b.导入相关的jar包(beans,core,context,expression,commons-logging)

    c.创建Spring的核心配置文件: applicationContext.xml
    2.编写java类

3.在IOC中配置bean.


4.测试:

    a.实例化SpringIOC容器


   b.从IOC容器中获取bean


3、IOC&DI

SpringIOC容器的结构:

a.BeanFactory:SpringIOC容器的基础设施,面向框架本身的.

b.ApplicationContext:面向开发者的.

c.ConfigurableApplicationContext:是ApplicationContext的子接口,额外的提供了refresh,close两个方法。

d.

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

 FileSystemXmlApplicationContext:从文件系统下加载读取配置文件

4、依赖注入(DI)

1.set方式注入

 a.在java类中提供成员变量(属性)对应的set方法.

  b.在IOC容器中通过property标签进行属性值的注入


2.构造器方式注入

  a.在java类中提供对应的构造器(一定要提供无参数的构造器)

  b.在IOC容器中通过constructor-arg标签进行属性值的注入


 c.constructor-arg标签的属性:

    value: 指定普通属性值

    ref: 引用其他的bean

    index: 指定构造器参数的位置

   type:  指定构造器参数的类型

5、注入属性值的细节

1.字面值

  a.遇到特殊字符,可以使用转义字符或者是<![CDATA[....]]>

2.引用其他的bean

  a.使用ref来指定IOC容器中已经存在的bean的id。

3.内部bean

  a.定义到一个bean的内部的bean.
      b.内部bean只能在bean的内部来使用.

  c.内部bean的定义可以省略id的配置.

4.null值与级联属性

  a.如果要给bean的属性装配null值,可以使用Spring提供的好的<null/>专有标签.

  b.Spring支持使用级联的方式给属性进行赋值.

5.集合类型的属性注入

  a.集合类型:

    List:  <list></list>

     Set:  <set></set>

     Map:  <map> <entry></entry></map>

     Properties: <props><prop></prop> </props>

6.独立的集合bean

 a.先导入util命名空间

   b.使用util:list来配置独立的集合bean


7.p命名空间

 a.先导入p命名空间

  b.在bean的配置中使用p:xxx 或者是p:xxx-ref来进行属性值的注入


6、自动装配

1.byName

      a.根据bean的id值进行装配

      b.根据IOC容器中bean的id值与要装配的bean的set风格的属性名进行匹配.

      c.匹配上则装配成功,匹配不上则装配失败,不会抛异常.

    2.byType:

      a.根据bean的类型进行装配

      b.根据IOC容器中bean的类型(class)与要装配的bean的属性的类型进行匹配

      c.使用byType的方式需要注意:如果匹配上多个兼容的类型(本类型与子类型),会抛出异常.






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Diligently_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值