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. 项目一共30个模块,你叫我maven版本一个个手动改?

    大家好呀,我是铂赛东,一个乱入公众号博主的开源作者.今天分享一个maven小技巧,希望帮助到大家. 之前有个群友私聊问我,如何快速统一去更改项目中所有的maven版本号,他说之前都是手动一个个去修改, ...

  2. 演示RabbitMQ的交换类型

    一.Direct exchange 新建一个名为direct_exchange的Direct exchange 添加队列direct_queue1 添加队列direct_queue2 direct_e ...

  3. HTML <option> 标签的属性:selected ; disabled ; label ; value;

    HTML <option> 标签的属性:selected ;  disabled ; label ; value; 1. selected="selected" sel ...

  4. 【NOI P模拟赛】最短路(树形DP,树的直径)

    题面 给定一棵 n n n 个结点的无根树,每条边的边权均为 1 1 1 . 树上标记有 m m m 个互不相同的关键点,小 A \tt A A 会在这 m m m 个点中等概率随机地选择 k k k ...

  5. 如何守护数据安全? 这里有一份RDS灾备方案为你支招

    当今世界是一个充满着数据的互联网世界,生活的方方面面都在不断产生着数据,比如出行记录.消费记录.浏览的网页.发送的消息等等.除了文本类型的数据,图像.音乐.声音都是数据.对于企业而言,数据更是重要的生 ...

  6. KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(一)

    KingbaseES R6集群repmgr.conf参数'recovery'测试案例(一) 案例说明: 在KingbaseES R6集群中,主库节点出现宕机(如重启或关机),会产生主备切换,但是当主库 ...

  7. TortoiseSVN 执行清理( cleanUp )失败的解决方案

    TortoiseSVN 执行清理( cleanUp )失败的解决方案 今天碰到了一个比较棘手的问题,在这里做一下记录,以方便自己和有需要的朋友在之后碰到该类问题时有个参考. 现象 更新SVN时弹出清理 ...

  8. Kubernetes Operator: Operator

    Operator 就可以看成是 CRD 和 Controller 的一种组合特例,Operator 是一种思想,它结合了特定领域知识并通过 CRD 机制扩展了 Kubernetes API 资源,使用 ...

  9. 部署一个生产级别的 Kubernetes 应用(以Wordpress为例)

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247487811&idx=1&sn=67b39b73 ...

  10. logstash另类输出到es

    filebeat配置文件: filebeat.inputs: - type: log enabled: true paths: - /opt/hkd-cloud/hkd-custom/hkd-cust ...