配置Bean的形式可以基于XML文件的方式,也可以基于注解的方式,而Bean的配置方式可以通过全类名(反射),通过工厂方式和FactoryBean. XML形式 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/200…
SpringIOC容器可以管理Bean的生命周期,Spring允许在Bean生命周期的特定点执行特定的任务! Spring IOC容器对Bean的生命周期进行管理的过程: -通过构造器或者工厂方法创建Bean实例 -为Bean的属性设置值和对其他Bean的引用 -调用Bean的初始化方法 -Bean可以使用了 -当容器关闭了,调用Bean的销毁方法 在Bean的声明中设置init-method和destory-method属性,为Bean指定初始化和销毁方法:如图: <bean id="s…
引用其他Bean 组件应用程序的Bean经常需要相互协作以完成应用程序的功能,所以要求Bean能够相互访问,就必须在Bean配置文件中指定Bean的引用.在Bean的配置文件中可以用过<ref>元素或者ref属性为Bean的属性或构造器参数指定对Bean的引用.也可以在属性或者构造器里包含Bean的声明,这样的Bean称为内部Bean.具体看代码,在之前的Student类上新增Book类,(一个学生有一本书).代码如下: Book.java package com.lql.spring01;…
一:通过静态工厂配置Bean 建立Student.java package com.lql.srping04; /** * @author: lql * @date: 2019.10.28 * Description: */ public class Student { private String name; private Integer age; @Override public String toString() { return "Student{" + "name…
一:基于注解配置Bean 首先介绍下组件扫描(component scanning): Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 包括: -@Component:基本注解,标识一个受Spring管理的组件 -@Respository:标识持久层组件 -@Service:标识服务层/业务层组件 -@Controller:标识表现层/控制层组件 实际上,上述四个注解,除了名字不同之外,功能都是一样的,换一句话说,能用@Respository也能用其他三个组件,…
以前公司一直使用的是spring3.0,最近一段时间开始用了4.0,官网上都已经有了5.0,但是很多知识点已经忘了差不多了,趁现在项目不忙写写随笔,一来回顾自己的知识点,二来如果能帮助比我还小白的小白,那最好不过了,不定期更新,温故而知新. Spring官网(https://spring.io) Spring是什么? spring是为了简化企业级应用开发而生的开源框架(主要是简化了过去EJB2的开发),它是轻量级的(非入侵式)和一站式(整合能力强)框架,也是一个IOC(DI)(依赖注入)和AOP…
自动装配 xml配置里的Bean的自动装配,Spring IOC容器可以自动装配Bean,仅仅需要做的是在<bean>标签里的autowire属性里指定自动装配的模式. ①byType(根据类型自动装配):若IOC容器中有多个与目标Bean类型一致的Bean,在这种情况下,Spring无法判断哪个Bean与之匹配,所以不能执行自动装配. ②byName(根据名称自动装配):必须将目标Bean的名称和属性名设置的完全相同. ③constructor(通过构造器自动装配, 不推荐):当Bean中存…
建立Student.java package com.lql.srping04; /** * @author: lql * @date: 2019.10.28 * Description: */ public class Student { private String name; private Integer age; @Override public String toString() { return "Student{" + "name='" + name…
事务:事务就是一系列的动作,它们被当做一个单独的工作单元,这些动作要么全部完成,要么全部不起作用:事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性.事务的四个关键属性(ACID): -原子性(atomicity):事务是一个原子操作,由一系列动作组成,事务的原子性确保动作要么全部完成要么完全不起作用. -一致性(consistency):一旦所有事务动作完成,事务就被提交,数据和资源就处于一种满足业务规则的一致性状态中. -隔离性(isolation):可能有许多事务会…
Srping的核心除了之前讲到的IOC/DI之外,还有一个AOP(Aspect Oriented Programming:面向切面编程):通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率.主要的功能: 日志记录,性能统计,安全控制,事务处理,异常处理等等. 在介绍AOP之前,先介绍动态代理:代理设计模式的原理:使用一个代理将对象包装起来,然后用该代理对象取代…
泛型依赖注入:Spring 4.x中可以为子类注入子类对应的泛型类型的成员变量的引用. 话语太过抽象,直接看代码案例,依次建立如下代码: User.java package com.lql.spring05; /** * @author: lql * @date: 2019.10.28 * Description: */ public class User { } BaseService.java package com.lql.spring05; import org.springframew…
IOC&DI介绍 ●IOC:(Inversion of Control) :控制反转(反向获取资源) 其思想是反转资源获取的方向.传统的资源上查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源.而应用了IOC之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源.这种行为也被称为查找的被动形式. ●DI(Dependency Injection):依赖注入(依赖容器把资源注入进来) IOC的另一种表述方式:即组件以一些预先定义好的方式(例如…
组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: 1.@Component:基本注解,识别一个受Spring管理的组件 2.@Respository:标识持久层组件 3.@Service:标识业务层组件 4.@Controller:标识表现层组件 Spring 有默认的命名策略: 使用非限定类名, 第一个字母小写. 也可以在注解中通过 value 属性值标识组件的名称 当在组件类上使用了特定的注解之后, 还需要在 Spring 的配置文件…
Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式   √ id:标识容器中的bean.id唯一. √ class:bean的全类名,通过反射的方式在IOC容器中创建Bean,所以要求Bean中必须有无参的构造器 2.依赖注入的方式 1)属性注入:通过setter方法注入Bean的属性值或依赖的对象 属性注入使用<Property>元素,使用name指定Bean的属性名称,使用value指定Bean的属…
1.实现Spring 提供的FactoryBean接口 package com.spring.facoryBean; import org.springframework.beans.factory.FactoryBean; public class CarFactoryBean implements FactoryBean<Car> { private String brand; public void setBrand(String brand) { this.brand = brand;…
之前学了,配置bean可以用普通全类名配置.用工厂方法配置,FactoryBean又是什么呢 有时候配置bean要用到,IOC其他Bean,这时,用FactoryBean配置最合适. FactoryBean是一个接口,要用的话就要实现它.他有三个方法: getObject()  //返回bean对象 getObjectType()  //返回bean的类型  isSingleton()   //是否单例 弄个例子: Car类 package com.guigu.spring.factorybea…
1. 使用静态工厂方法创建Bean,用到一个工厂类 例子:一个Car类,有brand和price属性. package com.guigu.spring.factory; public class Car { private String brand; private double price; public Car(){ } public Car(String brand,double price){ this.brand=brand; this.price=price; } public S…
FactoryBean简介: 1)Spring中Bean包含两种一种是普通Bean,另外一种是FactoryBean.它们都受IOC容器管理,但是也有不同之处. 2)普通Bean与FactoryBean的区别: a)普通的Bean只需要定义好,然后配置文件中定义并配置其依赖关系,就可以通过IOC容器的getBean获取到: b)FactoryBean是实现了FactoryBean<T>接口的Bean,通过FactoryBean类的getBean方法直接获取到的并不是该FactoryBean实例…
1.实现FactoryBean接口 import org.springframework.beans.factory.FactoryBean; public class CarFactoryBean implements FactoryBean<Car> { @Override public Car getObject() throws Exception {  // TODO Auto-generated method stub  return new Car("Qq",…
在spring的世界中, 我们通常会利用bean config file 或者 annotation注解方式来配置bean. 在第一种利用bean config file(spring xml)方式中, 还包括如下三小类 反射模式 工厂方法模式(本文重点) Factory Bean模式 其中反射模式最常见, 我们需要在bean 配置中指明我们需要的bean object的全类名. 例如: <bean id="car1" class="com.home.factoryMe…
这是配置Bean的第三种方式,FactoryBean是Spring为我们提供的,我们先来看看源码: 第一个方法:public abstract T getObject() throws Exception; 返回Bean本身, 第二个方法:public abstract Class<?> getObjectType(); 返回Bean实例 第三个方法:public boolean isSingleton() { return true; } 返回Bean是否单例 也许你会问,我们可以通过全类名…
概要: 实例代码具体解释: 文件夹结构 Car.java package com.coslay.beans.factorybean; public class Car { private String brand; private double price; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public double getP…
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAk8AAAFHCAIAAAA3Hj/JAAAgAElEQVR4nO2dzdX0rA2Gp6asclwQTW…
beans-factorybean.xml <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://w…
为啥要使用FactoryBean: 在配置Bean的时候,需要用到IOC容器中的其它Bean,这个时候使用FactoryBean配置最合适. public class Car { private String brand; private double price; public Car() { System.out.println("com.cn.Car's Constructor"); } public Car(String brand, double price) { this.…
1.静态工厂方法: bean package com.spring.factory; public class Car { public Car(String brand) { this.brand = brand; } @Override public String toString() { return "Car [brand=" + brand + "]"; } private String brand; public void setBrand(String…
自己学习的地址:http://www.imooc.com/view/175 学到2.8章节,配置IP这一块,妈蛋,他直接跳过了,都不知道怎么配置,无奈,只能Search 先是找到配置IP的方法: http://www.cnblogs.com/lhj588/archive/2012/02/15/2353139.html 写完之后,发现个问题,如何保存?(这个问题真是太SB了) 只能又Search,找到一条命令: vi /etc/resolv.conf #用vi 编辑器打开指定文件 #vi :文本编…
一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中.在spring cloud config 组件中,分两个角色,一是config server,二是config client. 二.构建Config Server 创建一个spring-boot项目,取名为config-s…
一.  IOC容器配置 1. 一些概念 (1)IOC容器: 定义:具有管理对象和管理对象之间的依赖关系的容器. 作用:应用程序无需自己创建对象,对象由IOC容器创建并组装.BeanFactory是IOC容器的核心. 流程:IOC容器根据配置文件,读取配置元数据,通过元数据库对程序中的各个对象进行实例化和装配.Spring与配置文件完全解耦,可以使用其他任何方式进行配置元数据,比如注解.基于java文件.基于属性文件的配置都可以. (2)Bean:IOC容器管理的应用程序的对象我们称它为bean.…
实体bean: Car.java: package spring.beans.factorybean; public class Car { private String name; private int price; public Car(String name, int price) { super(); this.name = name; this.price = price; } public String getName() { return name; } public void…