spring
文章平均质量分 63
YellowStar007
每天学习一点点,每天提升一点点
展开
-
spring基础知识 (2): 在eclipse中安装spring插件
Eclipse 中 安装 Spring 插件 后开发效率会显著提高,web.xml中只需提示,便可完成Spring 相关配置 在Spring的配置文件中 增加个命名空间 也只是勾选个复选框的事情 下面总结了几种常见的安装spring插件的方法:方法一:离线安装 1.首先到官网下载插件,地址:http://spring.io/tools/sts/all 选择第一个点击下载即可 ...原创 2018-05-10 16:27:20 · 5266 阅读 · 0 评论 -
spring基础知识 (16):泛型依赖注入
泛型依赖注入spring 4.x以上版本才有 创建两个带泛型的类,并配置两者的依赖关系,对于继承这两个类的子类,如果泛型相同,则会继承这种依赖关系: 如上图: 定义了两个泛型base类:BaseService和BaseRepository 对于UserService和UserRpository分别继承两个base类,泛型都是User,则他们俩继承了父类的依赖关系。BaseRe...原创 2018-05-12 20:03:44 · 7142 阅读 · 1 评论 -
spring基础知识 (17):AOP基础
为什么要使用AOP每个技术的诞生都是为了问题的,而AOP是为了解决什么问题的呢?发现问题 假设我们要实现一个计算器功能,要求 - 能够实现基本的加减乘除计算功能 - 要求实现日志功能 实现上面的需求比较直接简单的方法是:在每个计算功能核心代码中都写入日志输出处理。写一个计算器接口package com.spring.proxy;public interface ...原创 2018-05-13 12:18:51 · 5768 阅读 · 1 评论 -
spring基础知识 (18):Spring AOP专业术语解析
一、 连接点(Joinpoint)连接点就是程序执行的某个特定的位置,如:类开始初始化前、类初始化后、类的某个方法调用前、类的某个方法调用后、方法抛出异常后等。 Spring 只支持类的方法前、后、抛出异常后的连接点。二、 切点(Pointcut)一个项目中有很多的类,一个类有很多个连接点,当我们需要在某个方法前插入一段通知(advice)代码时,我们就需要使用切点信息来确定,要在哪...原创 2018-05-13 12:21:01 · 5727 阅读 · 1 评论 -
spring基础知识 (19):AOP之前后置通知
使用AspectJ实现AOP AspectJ:Java 社区里最完整最流行的 AOP 框架. 在 Spring2.0 以上版本中, 可以使用基于 AspectJ 注解或基于 XML 配置的 AOP在 Spring 中启用 AspectJ 注解支持在之前我们使用springIOC功能的时候配置了依赖:<dependency> <groupId&am原创 2018-05-13 17:20:18 · 5894 阅读 · 0 评论 -
spring基础知识 (20):返回通知&异常通知&环绕通知
AspectJ 支持 5 种类型的通知注解: @Before: 前置通知, 在方法执行之前执行 @After: 后置通知, 在方法执行之后执行 @AfterRunning: 返回通知, 在方法返回结果之后执行 @AfterThrowing: 异常通知, 在方法抛出异常之后 @Around: 环绕通知, 围绕着方法执行 返回通知 使用@Af...原创 2018-05-13 18:30:58 · 6993 阅读 · 0 评论 -
spring基础知识 (21):切面的优先级
在同一个连接点上应用不止一个切面时, 除非明确指定, 否则它们的优先级是不确定的. 切面的优先级可以通过实现 Ordered 接口或利用 @Order 注解指定. 实现 Ordered 接口, getOrder() 方法的返回值越小, 优先级越高. 若使用 @Order 注解, 序号出现在注解中,值越小优先级越高 LoggingAspect 切面的优先级设置为 2...原创 2018-05-14 11:16:22 · 5829 阅读 · 0 评论 -
spring基础知识 (22):重用切点表达式
重用切点表达式看之前的代码:package com.spring.aop;import java.util.Arrays;import java.util.List;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.*;import org.springframework.core.ann...原创 2018-05-14 11:38:54 · 5770 阅读 · 0 评论 -
spring基础知识 (23):基于配置文件方式配置AOP
之前实现的AOP都是基于注解方式的,下面开始使用配置文件方式配置AOP: 目标对象 —— 计算器类接口:package com.spring.aop.xml;public interface Calculator { int add(int i,int j); int sub(int i,int j); int div(int i,int j);}...原创 2018-05-14 16:04:24 · 5542 阅读 · 0 评论 -
spring基础知识 (24):认识事务并配置一个JDBC事务管理
认识事务 事务管理是企业级应用程序开发中必不可少的技术, 用来确保数据的完整性和一致性. 事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用 事务的四个关键属性(ACID) 原子性(atomicity): 事务是一个原子操作, 由一系列动作组成. 事务的原子性确保动作要么全部完成要么完全不起作用. 一致性(consis...原创 2018-05-15 12:02:51 · 5703 阅读 · 0 评论 -
spring基础知识 (25):事务的传播行为
当事务方法被另一个事务方法调用时, 必须指定事务应该如何传播. 例如: 方法可能继续在现有事务中运行, 也可能开启一个新事务, 并在自己的事务中运行. 事务的传播行为可以由传播属性指定. Spring 定义了 7 种类传播行为. 还是小花给小明转账的问题: 本节只提供部分代码,其余的代码请去上一节查看: 认识事务并配置一个JDBC事务管理 这次转账...原创 2018-05-15 16:27:52 · 5656 阅读 · 0 评论 -
spring基础知识 (26):@Transactional的属性配置
propagation属性使用 propagation 指定事务的传播行为, 即当前的事务方法被另外一个事务方法调用时如何使用事务, 常用属性值有: - REQUIRED: 默认值。使用调用方法的事务,统一使用最外层方法的事务,如果执行过程中出现问题,全部回滚。 - REQUIRES_NEW: 使用自己的事务, 调用的事务方法的事务被挂起.isolation属性...原创 2018-05-15 17:15:38 · 6294 阅读 · 0 评论 -
spring基础知识 (27):xml方式配置事务
这里用到了AOP,需要加入而外的jar,这里加入aspectj的依赖:<dependency> <groupId>org.aspectj</groupId> <artifactId>asp原创 2018-05-15 18:23:48 · 5711 阅读 · 0 评论 -
spring基础知识 (15):使用注解自动装配bean
一般情况下,控制层(controller)需要调用业务层(service)进行业务逻辑处理,业务层调用持久层(dao)访问数据库。这时候就需要使用自动装配注入相应的bean.在controller中注入service,在service中注入reponsitory。使用 @Autowired 自动装配 Bean通过属性注入创建持久层接口package com.sp...原创 2018-05-12 18:02:02 · 6494 阅读 · 0 评论 -
spring基础知识 (14):使用注解方式配置bean
组件扫描(component scanning): Spring 能够从 classpath 下自动扫描, 侦测和实例化具有特定注解的组件.常用的注解 @Component: 基本注解, 标识了一个受 Spring 管理的组件 @Respository: 标识持久层(dao层)组件 @Service:标识业务层(service层)组件 @Con...原创 2018-05-12 16:23:37 · 5663 阅读 · 0 评论 -
spring基础知识 (13):使用FactoryBean创建bean
关于FactoryBean: Spring 中有两种类型的 Bean, 一种是普通Bean, 另一种是工厂Bean, 即FactoryBean. 工厂 Bean 跟普通Bean不同, 其返回的对象不是指定类的一个实例, 其返回的是该工厂 Bean 的 getObject 方法所返回的对象 使用FactoryBean创建beanspring有提供给我们Fact...原创 2018-05-12 11:27:40 · 5671 阅读 · 0 评论 -
spring基础知识 (1):认识IOC
关于IOC(DI)  在我们日常开发过程中,必不可少的需要创建使用很多对象来完成相应的操作,这时候我们就需要写出那个非常常见的语句new object()。但是在这里需要new一个对象在那里又需要new一个对象,你会发现:对象间的耦合度高了。  &am原创 2018-05-10 16:00:59 · 5232 阅读 · 0 评论 -
spring基础知识 (3):创建spring项目之HelloWorld
1、创建一个maven项目 选择quickstart版本,这里还用不到web所以用这个就足够了 2、创建好工程后,引入依赖<dependency> <groupId>org.springframework</groupId&amp原创 2018-05-10 17:23:10 · 6095 阅读 · 0 评论 -
spring基础知识 (4): bean的配置
根据属性配置bean上个博客使用的例子HelloWorld就是用的属性创建的bean 创建spring项目之HelloWorld 这种方式能够将属性值注入关键是相应的属性必须有set方法,否则注入失败根据构造函数配置bean新建一个Person类package com.imooc.spring;public class Person { private Stri...原创 2018-05-10 18:05:03 · 5163 阅读 · 0 评论 -
spring几个注解配置比较
context:annotation-config在配置文件中配置:<context:annotation-config/>使用这个配置的作用: 开启注解 @Autowired 自动注入 @Resource 自动注入 @PostConstruct bean初始化之前 @PreDestroy bean销毁之后 @PersistenceContext 注入实体管理对...原创 2018-05-17 11:21:25 · 5798 阅读 · 1 评论 -
spring基础知识 (5):bean配置进阶篇
1、一个bean注入另外一个bean当Person类中有一个属性是Car,那么该如何配置呢Car类package com.imooc.spring;public class Car { private String brand; private double price; public void setBrand(String brand) { ...原创 2018-05-10 19:15:43 · 5435 阅读 · 0 评论 -
spring基础知识 (6):xml配置bean自动装配
自动装配类型1、byName通过属性的setter方法名和配置的bean的ID自动匹配,注意是用setter方法和bean匹配,不是属性去匹配。Person类package com.yusys.spring;public class Person { private String name; private int age; private C...原创 2018-05-11 11:12:57 · 5719 阅读 · 0 评论 -
spring基础知识 (7):bean的继承与依赖关系
bean的继承关系bean之间可以继承,子bean可以继承父bean的属性,这很好理解。看代码<bean id="car_father" class="com.yusys.spring.Car"> <property name=&原创 2018-05-11 11:45:54 · 5550 阅读 · 0 评论 -
spring基础知识 (8): bean的作用域
在 Spring 中, 可以在 <bean> 元素的 scope 属性里设置 Bean 的作用域. 1、bean的五种作用域2、singleton作用域默认情况下, Spring 只为每个在 IOC 容器里声明的 Bean 创建唯一一个实例, 整个 IOC 容器范围内都能共享该实例:所有后续的 getBean() 调用和 Bean 引用都将返回这个唯一的 Bean ...原创 2018-05-11 15:42:21 · 5434 阅读 · 0 评论 -
spring基础知识 (9):引用外部文件
1、引入properties文件两种方式 第一种方式:<!--引入数据库配置信息 --><context:property-placeholder location="classpath*:jdbc.properties" />第二种方式: 情况1 – 引入一个文件&a原创 2018-05-11 16:16:42 · 5623 阅读 · 0 评论 -
spring基础知识 (10): SpEL表达式
什么是SpEL Spring 表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言。 语法类似于 EL表达式:SpEL 使用 #{…}作为定界符,所有在大框号中的字符都将被认为是 SpEL。 SpEL 为 bean 的属性进行动态赋值提供了便利 通过 SpEL 可以实现: 通过 bean 的 id 对 bean 进行引用 调用方法以及引...原创 2018-05-11 17:26:28 · 6505 阅读 · 1 评论 -
spring基础知识 (11):bean的生命周期
Spring IOC 容器可以管理 Bean 的生命周期, Spring 允许在 Bean 生命周期的特定点执行定制的任务. Spring IOC 容器对 Bean 的生命周期进行管理的过程: 通过构造器或工厂方法创建 Bean 实例 为 Bean 的属性设置值和对其他 Bean 的引用 调用 Bean 的初始化方法 Bean 可以使用了 当容器关闭时, ...原创 2018-05-11 19:28:01 · 5587 阅读 · 0 评论 -
spring基础知识 (12):工厂方法配置bean
静态工厂方法配置bean配置一个静态工厂方法package com.spring.factory;import java.util.HashMap;import java.util.Map;public class CarFactory { private static Map<String,Car> map = new HashMap<S原创 2018-05-12 10:50:58 · 5503 阅读 · 0 评论 -
spring基础知识 (28):spring在web中的应用的基本思路
spring在web应用中的配置与使用的基本思路:需要额外加入的 jar 包: spring-web-4.0.0.RELEASE.jar spring-webmvc-4.0.0.RELEASE.jarSpring 的配置文件在java应用中一样配置如何创建 IOC 容器 ? 在非WEB应用中,使用ApplicationContext接口直接创建 在WEB应用中,应该在应用启动时就...原创 2018-05-16 12:20:32 · 5700 阅读 · 0 评论