spring-ioc知识点
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知识点的更多相关文章
- Spring IOC知识点一网打尽!
前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 包装模式就是这么简单啦 单例模式你会几种写法? 工厂模式理解了没有? 在刷Spring书籍的时候花了点时间去学习了单例模式和工厂模式,总 ...
- 总结:spring 的ioc 知识点
1. spring ioc的优点 解耦,对象的创建不直接在代码里生成(不方便修改) ,交由容器创建.... 2.IOC 和 DI 的区别 依赖关系:A类 里 要调用B类 如 se ...
- spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例
下面开始项目的搭建 使用 Java EE - Eclipse 新建一 Dynamic Web Project Target Runtime 选 Apache Tomcat 7.0(不要选 Apache ...
- 案例学编程系列:案例认识 Spring IOC
本文spring libs 地址:https://github.com/yizhiamumu/springlibs Spring 能帮我们做什么 ①.Spring 能帮我们根据配置文件创建及组装对象之 ...
- Spring IOC 容器源码分析
声明!非原创,本文出处 Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器.既然大家平时都要用到 Spring,怎么可以不好好了解 S ...
- 关于Spring IOC (DI-依赖注入)需要知道的一切
关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切 <Spring入门经典>这本书无论对于初学者或者有 ...
- Spring IOC 源码分析
Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器.既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文 ...
- 关于Spring IOC (DI-依赖注入)
<Spring入门经典>这本书无论对于初学者或者有经验的工程师还是很值一看的,最近花了点时间回顾了Spring的内容,在此顺带记录一下,本篇主要与spring IOC相关 ,这篇博文适合初 ...
- Spring IOC 巨多 非常 有用
关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切 <Spring入门经典>这本书无论对于初学者或者有 ...
- Spring IOC 容器源码分析(转)
原文地址 Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器.既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢 ...
随机推荐
- ubuntu 连不上网怎么办?
[简洁版本] ctrl+alt+delete -> 任务管理器 ->"服务"选项卡 -> 运行"VMnet""VMware" ...
- 【Manim CE】常用Mobject
当前文档版本:v0.16.0.post0 VMobject 继承自Mobject V的意思是向量化的,vectorized mobject fill_color=None, fill_opacity= ...
- vue2和vue3的区别?
vue2和vue3的主要区别在于以下几点: 1.生命周期函数钩子不同 2.数据双向绑定原理不同 3.定义变量和方法不同 4.指令和插槽的使用不同 5.API类型不同 6.是否支持碎片 7.父子组件之间 ...
- 第八十八篇:Vue keep-alive的使用 让组件"活下去""
好家伙, 1.关于keep-alive 这是一个用于阻止组件自行销毁的插件 <!-- keep-alive可以把内部组件进行缓存,而不是销毁组件 --> 那么我们什么时候会用到他呢? 举个 ...
- HBase集群部署与基础命令
HBase 集群部署 安装 hbase 之前需要先搭建好 hadoop 集群和 zookeeper 集群.hadoop 集群搭建可以参考:https://www.cnblogs.com/javammc ...
- sys.path的使用场景
起因 在初学python时,经常遇到找不到某个路径下的文件,或者在博客中找到的代码需要暴露出环境变量(如linux中可以export PYTHONPATH="$PYTHON;/carla/b ...
- 【PMP学习笔记】第5章 项目范围管理
一.规范管理的内涵 项目范围管理:包括确保项目做且只做所需的全部工作,以成功完成项目的各个过程. 项目范围:为交付具有规定特性与功能的产品.服务或成果而必须完成的工作. 预测型:开始时定义可交付成果, ...
- flutter系列之:UI layout简介
目录 简介 flutter中layout的分类 常用layout举例 总结 简介 对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了.布局的英文名叫做layout,就是用来 ...
- KingbaseES R6 集群“双主”故障解决案例
实际工作中,可能会碰到集群脑裂的情况,在脑裂时,会出现双 primary情况.这时,需要用户介入,人工判断哪个节点的数据最新,减少数据丢失. 一.测试环境信息 操作系统: [kingbase@node ...
- KingbaseES R6 集群禁用 root ssh 后需要修改集群为es_server 案例
案例说明: 在生产环境下,由于安全需要,主机间不允许建立root用户的ssh信任连接,这样导致KingbaseES R6 repmgr集群,通过sys_monitor.sh脚本启动集群时,节点之间不能 ...