spring个人笔记,不含Aop

底层原理

1.Spring提供ioc容器实现两种方式:(两个接口)
  • BeanFactory
  • ApplicationContext(BeanFactory的子接口,优)
2.ApplicationContext主要实现类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WvTGQxgu-1647923455967)(C:\Users\dell\AppData\Roaming\Typora\typora-user-images\image-20220314101129959.png)]

Bean管理xml方式

Ioc操作bean管理

什么是bean管理?

  • 创建对象
  • 注入属性
bean管理操作两种方式
基于xml配置文件实现
  • 基于xml创建对象

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eMvvkxRt-1647923455968)(C:\Users\dell\AppData\Roaming\Typora\typora-user-images\image-20220314102522869.png)]

    id属性:给这个对象起别名,用在对它的寻找

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HtAi3PX4-1647923455969)(C:\Users\dell\AppData\Roaming\Typora\typora-user-images\image-20220314104755876.png)]

    class属性:类的全路径

    name属性:与id相似,但name可以加特殊符号

  • 基于xml方式注入属性

    DI:依赖注入,注入属性

    • set注入 bean标签里边使用property完成属性注入

      <property name="实现类的属性名称" value="向属性里注入的值"></property>
      
    • 有参构造注入

      bean标签里使用标签

      index属性:索引值

      p名称空间注入

      • 添加p名称空间的一个约束,然后在bean标签里添加p:属性

    字面量

    • 空值 在property中不写value属性 但在property中加一个标签

    • 特殊符号 两种解决方式:1.转义 2.把特殊符号内容写到CDATA中

      • <!-- 配置User类的对象创建-->
            <bean id="user" class="com.yangpeng.spring5.User">
                <property name="addres">
                    <value>
                        <![CDATA[具体内容]]>
                    </value>
                </property>
            </bean>
        
        

        外部bean的注入 级联赋值 :第一种 使用ref 第二种不常用的 其中要在实现类的该属性中使用get方法获得该属性值

        property标签,name属性:类里面的属性名称

      <property name="类里面属性名称" ref="与要引用的对象的id要对应"><property><bean id="ref与该处一致"></bean>  
      

      内部bean :在一个bean里边再嵌套另一个对象,同样适用于引用数据类型

      <bean id=" "class="">
          <property name="dept">
          <bean>
              <property name=""></property>
          </bean>
          </property>
      </bean>
      

xml注入集合属性

1、注入数组类型属性
<bean>
    <property name="arr">
        <array>
            <value></value>
            <value></value>
        </array>
    </property>
</bean>
2、注入List集合类型属性
<bean>
    <property name="list">
        <list>
            <value></value>
            <value></value>
        </list>
    </property>
</bean>
3、注入Map集合类型属性
<bean>
    <property name="maps">
        <map>
            <entry key=""value=""></entry>
            <entry key=""value=""></entry>
        </map>
    </property>
</bean>
Set类型属性注入
<bean>
    <property name="set">
        <set>
            <value></value>
            <value></value>
        </set>
    </property>
</bean>

对象型注入

<bean>
    <property>
        <list>
            <ref bean="course1"></ref>
        </list>
    </property>
</bean>
<bean id="course1" class=""></bean>
把集合注入部分抽取出来
<util:list id="bookList">
    <value></value>
    <value></value>
    <value></value>
</util:list>
提取list集合类型属性注入
<bean id="book" class="">
    <property name=""ref="bookList"></property>
</bean>
FactoryBean:定义类型和返回类型可以不一样

singleton与prototype区别:

1.Spring默认为单实例 通过bean标签里的scope属性可是设置实例,prototype多实例 singleton 单实例

2.设置scope的值为singleton的时候,加载spring配置文件就会创建单实例对象,设置为prototype时,不是再加载spring配置文件时创建对象,在创建getbean方法时创建多实例对象

bean的生命周期 7步

注意:后置处理器

xml自动装配

标签里的属性autowire,配置自动装配

autowire属性常用两个值:byName,byType

byName方式特点:注入值bean的id值和类里边属性的名称要一样

引入外部属性文件 如jdbc用 properties引用

注解方式注入

Spring 针对Bean管理中创建对象提供注解

@Component

@Service

@Controller

@Repository

上面四个注解的功能都是一样的 都可以用来创建bean实例

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鲲鹏~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值