杂文"/>
Spring杂文
慢慢又漫漫,漫漫亦灿灿
一,耦合
在java基础中的耦合程度。
高耦合:new 一个新对象
中耦合:运用反射原理,calss.forName()的形式,forName参数形式为字符串形式。
低耦合:将键和值以key和value的形式存在properties。增加了代码的灵活性。
二,微服务
微服务:一个项目分为多个模块,每个模块都有相似的或者不同的配置文件,springbot主要是为了减少配置文件。
javaBean:可重复利用的java组件。
三,SprintIOC容器
SpringIOC容器(中文释义:控制反转)作用:控制,管理组件和解耦。是Spring框架的核心思想之一。从ioc容器的功能上来说,主要是为了配置文件创建和管理bean。
IOC(Inversion of Control)是一种软件设计原则,也是一种实现软件组件之间松耦合的方式。它的核心思想是将控制权从调用者转移到了外部容器中,由容器来管理对象的创建和依赖关系的注入。通过使用IOC容器,我们可以实现依赖注入(DI)的方式来解耦组件之间的依赖关系。
在IOC中,组件不再负责自己的创建和管理,而是通过配置或注解的方式告诉容器需要什么依赖,并由容器负责创建对象、解决依赖关系并将依赖注入到组件中。这样做的好处是使得组件更加可复用、可测试和可扩展,同时也降低了组件之间的耦合度。
常见的IOC容器有Spring Framework中的ApplicationContext和BeanFactory等。
3.1 Spring核心思想1:控制反转
控制反转:IOC控制对象的创建和管理权利,将创建对象的控制权给spring框架进行管理。
接着。由spring框架根据配置文件或注解等方式。创建bean对象并管理各个bean对象之间的依赖关系。使对象之间形成松散耦合的关系,实现解耦。
反转:原来是用户创建对象,现在是容器创建对象。(错)控制权交给外部环境(spring框架,ioc容器)
3.2 Spring核心思想2:AOP面向切面编程
springDI(依赖注入 dependecy inject):用户要啥,spring容器使两个对象形成依赖关系。共同注入一个javaBean中。
是对IOC概念不同角度的描述,是指应用程序在运行时,每一个bean对象都依赖IOC容器注入当前bean对象所需的另一个bean对象。这个bean就是指在xml中,标签bean中的内容。
四,SpringDI实现方式和实例化bean的三种方式
4.1 SpringDI实现方式
1.set。2.构造注入 。等都是为了维护对象之间的依赖关系。
程序的运行流程:测试类加载,主配置文件被加载,根据配置文件创建实例化对象。找到set方法。value:用于给元素赋值。ref在bean标签里面引用其他标签。
SpringDI注入springioc ,springioc分配对象,完成高内聚,低耦合的创建对象方式。
4.2 实例化bean的要点
前提:必须要有set方法。
参数分类:
1.对象
在bean的xxx.xml的中,如果一个类实现了另一个接口,那么这个类可以写入bean的xml文件当中。但是他的父类接口不可以写进去。
2.基本类型和String
3.array,list,set,properties,map。等复杂数据类型。
<!--===================set注入对象==========================--><!--注入controller--><bean id="controllerImp" class="com.apesource.controller.UserControllerImp"><property name="serivce" ref="serivceImp"></property></bean><!--注入service--><bean id="serivceImp" class="com.apesource.service.UserSerivceImp"><property name="dao" ref="daoImp"></property></bean><!--注入dao--><bean id="daoImp" class="com.apesource.dao.UserDaoImp"></bean><!--===================set注入基本类型与String==========================--><bean id="student" class="com.apesource.pojo.Student"><property name="stuname" value="zzz"></property><property name="stuhobby" value="xxx"></property><property name="stuage" value="23"></property></bean><!--===================set注入复杂类型==========================--><bean id="teacher" class="com.apesource.pojo.Teacher"><!--list--><property name="mylist"><list><value>xxx</value><value>xxx</value><value>xxx</value><value>xxx</value><value>xxx</value></list></property><!--set--><property name="myset"><set><value>xxx</value><value>xxx</value><value>xxx</value><value>xxx</value><value>xxx</value></set></property><!--array--><property name="myarray"><array><value>xxx</value><value>xxx</value><value>xxx</value></array></property><!--map--><property name="mymap"><map><entry key="xxx" value="xxx"></entry><entry key="xxxx" value="xxx"></entry><entry key="xxx" value="xxx"></entry><entry key="xxx" value="xxx"></entry><entry key="xxx" value="xxx"></entry></map></property><!--properties--><property name="prop"><props><prop key="xxx">7</prop><prop key="xxx">10</prop><prop key="xxx">12</prop><prop key="xxx">14</prop></props></property></bean>
更多推荐
Spring杂文
发布评论