1.bean管理
-spring创建对象
-在spring的配置文件中,使用bean标签、标签里添加对应的属性、就可以实现对象的创建
-在bean标签中有很多属性
-id属性:唯一的标识
-class属性:类全路径(包类的路径)
-创建对象的时候:默认无参
-spring注入属性
2.基于xml方式注入属性:
-DI;依赖注入:就是注入属性。
-使用set方法进行注入
<!--set注入属性 -->
<bean id="book" class="com.spring5.book">
<property name="bName" value="狂人日记">
<!-- property - name 注入的属性名字 value-注入的值 -->
</property>
<property name="bAuthor" value="鲁迅" >

</property>
</bean>
-使用有参构造器进行注入
-
<bean id="order" class="com.spring5.Order">
<constructor-arg name="oName" value="电脑"></constructor-arg>
<constructor-arg name="oAddress" value="China"></constructor-arg>
</bean>
-
注入属性
1.注入属性:外部
-创建两个类《service》 《dao》
-在service中调用dao
<bean id="userService" class="com.spring5.service.UserService">
<property name="userDAO" ref="userDAO"></property>
</bean>
<bean id="userDAO" class="com.spring5.dao.UserDAOImpl"></bean>
2.注入属性:内部bean和级联复制
1.1对n的关系:部门和员工 一个部门有多个院,一个员工属于一个部门
<bean id="emp" class="com.spring5.bean.Emp">
<property name="eName" value="Jerry"/>
<property name="gender" value="女"/>
<property name="dept" >
<bean id="dept" class="com.spring5.bean.Dept">
<property name="dName" value="保安部"/>
</bean>
</property>
</bean>
注入集合属性
-set list map
<bean id="stu" class="com.spring5.bean2.Stu">
<property name="courses" >
<array>
<value>java课程</value>
<value>数据库课程</value>
</array>
</property>
<property name="list">
<array>
<value>张珊</value>
<value>萧山</value>
</array>
</property>
<property name="map">
<map>
<entry key="Java" value="java"></entry>
</map>
</property>
<property name="set">
<set>
<value>MYsql</value>
<value>redis</value>
</set>
</property>
<property name="coursesList">
<list>
<ref bean="coures1"/>
<ref bean="coures2"/>
</list>
</property>
</bean>
<!-- 注入list集合 但是 list<counrs> 里面是对象-->
<bean id="coures1" class="com.spring5.bean2.course">
<property name="cName" value="Spring5框架"/>
</bean>
<bean id="coures2" class="com.spring5.bean2.course">
<property name="cName" value="MyBatis框架"/>
</bean>
6.bean的作用域
-单实例
output:
com.spring5.book@10163d6
com.spring5.book@10163d6
class = com.spring.作用域.Test
-如何设置单实例还是多实例
-在spring配置文件的bean标签中有属性(scope)用于设置单实例还是多实例
-scope属性值:
-默认值:singleton 表示是单实例对象
-prototype 表示是多实例对象
-output: 多实例化
com.spring5.book@31e5415e
com.spring5.book@a2431d0
-request session
7.bean的生命周期(servlet的生命周期类比)
-从对象创建到对象销毁的过程
-bean的生命周期:
-1.通过构造器创造bean的实例(无参构造器)
-2.为bean的属性设置或者其他的bean的引用(set方法)
-3.调用bean中的init方法 (需要进行设置)
-4.bean可以使用了
-5.当容器关闭的时候,调用bean的销毁方法
-3.演示bean的生命周期
8.自动装配
-什么是自动装配?
-1.根据指定的装备规则,spring自动将匹配的属性值进行注入
-byName
-byType
9.ioc-bean管理 外部属性文件
-1.直接配置数据库的信息
-连接池:druid连接池
-2.引入外部的属性文件配置数据库的连接池
<!-- 数据库的外部属性文件的引入配置数据库操作-->
<context:property-placeholder location="jdbc.properties"/>
<bean id="druid" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${prop.driverClassName}"/>
<property name="url" value="${prop.url}"/>
<property name="username" value="${prop.username}"/>
<property name="password" value="${prop.password}"/>

</bean>
class:spring-day02-src-bean1.xml

ioc操作bean管理-注解
-1.什么是注解
-2.注解为了简化xml的配置
2.
-bean管理的注解(针对创建对象的提供的注解)
-1.component
-2.service
-3.controller
-4.repository
3.
-第一步引入依赖
-开启组件扫描
-开启组件扫描的细节:
<!-- 示例1
use-default-filters="false" 表示不再使用默认的filter 自己配置filter
context:include-filter 配置需要扫描的注解格式
-->
<context:component-scan base-package="com.service" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 示例2
context:exclude-filte表示配置不扫描某个类型的注解
-->
<context:component-scan base-package="com.service">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>

4.注解进行属性注入
-autowired 根据属性类型进行自动装配
-qualifier 根据属性名称进行注入
-resource 根据类型进行注入 =也可以根据名称注入
-value 注入普通类型属性

spring-ioc知识点的更多相关文章

  1. Spring IOC知识点一网打尽!

    前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 包装模式就是这么简单啦 单例模式你会几种写法? 工厂模式理解了没有? 在刷Spring书籍的时候花了点时间去学习了单例模式和工厂模式,总 ...

  2. 总结:spring 的ioc 知识点

    1. spring ioc的优点    解耦,对象的创建不直接在代码里生成(不方便修改) ,交由容器创建.... 2.IOC 和 DI 的区别        依赖关系:A类 里 要调用B类  如 se ...

  3. spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例

    下面开始项目的搭建 使用 Java EE - Eclipse 新建一 Dynamic Web Project Target Runtime 选 Apache Tomcat 7.0(不要选 Apache ...

  4. 案例学编程系列:案例认识 Spring IOC

    本文spring libs 地址:https://github.com/yizhiamumu/springlibs Spring 能帮我们做什么 ①.Spring 能帮我们根据配置文件创建及组装对象之 ...

  5. Spring IOC 容器源码分析

    声明!非原创,本文出处 Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器.既然大家平时都要用到 Spring,怎么可以不好好了解 S ...

  6. 关于Spring IOC (DI-依赖注入)需要知道的一切

    关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切 <Spring入门经典>这本书无论对于初学者或者有 ...

  7. Spring IOC 源码分析

    Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器.既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文 ...

  8. 关于Spring IOC (DI-依赖注入)

    <Spring入门经典>这本书无论对于初学者或者有经验的工程师还是很值一看的,最近花了点时间回顾了Spring的内容,在此顺带记录一下,本篇主要与spring IOC相关 ,这篇博文适合初 ...

  9. Spring IOC 巨多 非常 有用

    关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切 <Spring入门经典>这本书无论对于初学者或者有 ...

  10. Spring IOC 容器源码分析(转)

    原文地址 Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器.既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢 ...

随机推荐

  1. 论文解读(PairNorm)《PairNorm: Tackling Oversmoothing in GNNs》

    论文信息 论文标题:PairNorm: Tackling Oversmoothing in GNNs论文作者:Lingxiao Zhao, Leman Akoglu论文来源:2020,ICLR论文地址 ...

  2. 「题解报告」P7301 【[USACO21JAN] Spaced Out S】

    原题传送门 神奇的5分算法:直接输出样例. 20分算法 直接把每个点是否有牛的状态DFS一遍同时判断是否合法,时间复杂度约为\(O(2^{n^2})\)(因为有判断合法的剪枝所以会比这个低).而在前四 ...

  3. pod资源的健康检查-readiness探针的httpGet使用

    livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器 readinessProbe:可用性检查,周期性检查服务是否可用,不可用将从service的endpoint ...

  4. 至少要几个砝码,可以称出 1g ~ 40g 重量

    请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] ...

  5. 再谈NULL和nullptr(C++11)区别

    在谈NULL和nullptr区别之前,我们先看段代码: #include "stdafx.h" #include <iostream> using namespace ...

  6. 回溯剪枝,dfs,bfs

    dfs: 给定一个整数n,将数字1~n排成一排,将会有很多种排列方法. 现在,请你按照字典序将所有的排列方法输出. 输入格式 共一行,包含一个整数n. 输出格式 按字典序输出所有排列方案,每个方案占一 ...

  7. redis的简单学习记录

    安装 1 brew install redis 启动redis服务 1 redis-server & 启动命令 1 redis-cli -h 127.0.0.1 -p 6379 利用gored ...

  8. Deployment必须包含资源对象

    Deployment 是一个控制器,能够用来控制 pod 数量跟期望数量一致,配置 pod 的发布方式 Deployment 会按照给定策略进行发布指定 pod,保证在更新过程中不可用数量在限定范围内 ...

  9. 13. 第十二篇 二进制安装kubelet

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483842&idx=1&sn=1ef1cb06 ...

  10. Elasticsearch 集群健康值红色终极解决方案

    文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247483905&idx=1&sn=acaff63 ...