一:基于注解配置Bean 首先介绍下组件扫描(component scanning): Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 包括: -@Component:基本注解,标识一个受Spring管理的组件 -@Respository:标识持久层组件 -@Service:标识服务层/业务层组件 -@Controller:标识表现层/控制层组件 实际上,上述四个注解,除了名字不同之外,功能都是一样的,换一句话说,能用@Respository也能用其他三个组件,…
基于注解的方式配置Bean:也就说我们在每个Bean的类名前面注解一下,Spring会自动帮我们扫描Bean放进IOC容器中 I基于注解的方式配置Bean(没有依赖关系的Bean)有两个步骤: 1组件扫描(component scanning): Spring 能够从 classpath( 类路径下,也就是Src文件夹下)下自动扫描, 侦测和实例化具有特定注解的组件.  特定组件包括: @Component: 基本注解, 标识了一个受 Spring 管理的组件   @Respository: 建…
--------------------siwuxie095                                 基于注解的方式管理 Bean         (一)准备         1.注解,可以理解为代码中的特殊标记,使用注解可以帮助完成功能             2.注解写法:@注解名称(属性名称="属性值")             3.注解可以使用在类上面.方法上面.属性上面             4.注解可以替代配置文件来管理 Bean,但不可能完全脱离…
Srping的核心除了之前讲到的IOC/DI之外,还有一个AOP(Aspect Oriented Programming:面向切面编程):通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率.主要的功能: 日志记录,性能统计,安全控制,事务处理,异常处理等等. 在介绍AOP之前,先介绍动态代理:代理设计模式的原理:使用一个代理将对象包装起来,然后用该代理对象取代…
配置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…
以前公司一直使用的是spring3.0,最近一段时间开始用了4.0,官网上都已经有了5.0,但是很多知识点已经忘了差不多了,趁现在项目不忙写写随笔,一来回顾自己的知识点,二来如果能帮助比我还小白的小白,那最好不过了,不定期更新,温故而知新. Spring官网(https://spring.io) Spring是什么? spring是为了简化企业级应用开发而生的开源框架(主要是简化了过去EJB2的开发),它是轻量级的(非入侵式)和一站式(整合能力强)框架,也是一个IOC(DI)(依赖注入)和AOP…
事务:事务就是一系列的动作,它们被当做一个单独的工作单元,这些动作要么全部完成,要么全部不起作用:事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性.事务的四个关键属性(ACID): -原子性(atomicity):事务是一个原子操作,由一系列动作组成,事务的原子性确保动作要么全部完成要么完全不起作用. -一致性(consistency):一旦所有事务动作完成,事务就被提交,数据和资源就处于一种满足业务规则的一致性状态中. -隔离性(isolation):可能有许多事务会…
引用其他Bean 组件应用程序的Bean经常需要相互协作以完成应用程序的功能,所以要求Bean能够相互访问,就必须在Bean配置文件中指定Bean的引用.在Bean的配置文件中可以用过<ref>元素或者ref属性为Bean的属性或构造器参数指定对Bean的引用.也可以在属性或者构造器里包含Bean的声明,这样的Bean称为内部Bean.具体看代码,在之前的Student类上新增Book类,(一个学生有一本书).代码如下: Book.java package com.lql.spring01;…
泛型依赖注入: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…
建立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…