
Spring
林浩-豪享码
这个作者很懒,什么都没留下…
展开
-
26-Spring采用xml配置事务
说明:本文内容来自尚硅谷用事务通知声明式地管理事务部分知识点可参考:Spring事务其它属性(隔离级别、回滚、只读、过期)项目代码示例:public interface BookShopDao { //根据书号获取书的单价 public int findBookPriceByIsbn(String isbn); //更新数的库存. 使书号对应的库存 - 1 public void updateBookStock(String isbn); //更新用户的账户余额: 使 u原创 2020-05-16 11:00:57 · 132 阅读 · 0 评论 -
25-Spring事务其它属性(隔离级别、回滚、只读、过期)
并发事务所导致的问题事务的隔离级别Spring 支持的事务隔离级别设置隔离事务属性设置回滚事务属性超时和只读属性设置超时和只读事务属性代码演示:@Service("bookShopService")public class BookShopServiceImpl implements BookShopService { @Autowired private BookShopDao bookShopDao; //添加事务注解 //1.使用 propagati原创 2020-05-16 09:47:24 · 149 阅读 · 0 评论 -
24-事务的传播行为
前两个比较常用,传播属性一般写在被调用的Service方法上面代码例子:需求:代码:在前一章节基础上再修改前一章节public interface Cashier { public void checkout(String username, List<String> isbns); }@Service("cashier")public class CashierImpl implements Cashier { @Autowired private Book.原创 2020-05-15 16:12:29 · 117 阅读 · 0 评论 -
23-Spring中的事务管理
事务简介Spring 中的事务管理Spring 中的事务管理器的不同实现例子:有个书店接口(三个方法:根据书号查书单价、根据书号更新书的库存、根据书号和余额更新账户),然后一个书店接口实现,该实现用jdbcTemplate写的。在service层接口(根据书名及用户名购买书),然后书店Service层实现。数据表中数据代码实现在前一章节的配置基础上:Spring对jdbc的支持书店Dao接口public interface BookShopDao { //根据书号获取书的单原创 2020-05-15 14:33:21 · 240 阅读 · 0 评论 -
22-Spring对JDBC的支持
JdbcTemplate 简介使用 JdbcTemplate 更新数据库jar包首先建立数据源xmlJUnit测试:数据源是否能通使用 JdbcTemplate 更新数据库JUnit测试/** * 获取单个列的值, 或做统计查询 * 使用 queryForObject(String sql, Class<Long> requiredType) */ @Test public void testQueryForObject2(){ String s原创 2020-05-15 09:45:58 · 170 阅读 · 0 评论 -
21-Spring基于 XML 的配置声明切面
声明切面方式:声明切面的实例代码声明切入点方式:声明切入点代码示例:声明通知:代码示例:声明引入:计算器的格式验证及日志采用XML配置声明切面代码示例:接口public interface ArithmeticCalculator { int add(int i,int j); int sub(int i,int j); int mul(int i,int j); int div(int i,int j);}实现类public class Arithmet.原创 2020-05-14 14:25:50 · 154 阅读 · 0 评论 -
20-Spring重用切入点
例子:在日志切面将切入点声明成方法,然后在日志切面和验证切面使用同一个切入点@Component@Aspect@Order(2)public class LoggingAspect { /** * 定义一个方法,用于声明切入点表达式,一般地,该方法中再不需要添入其它代码 * 使用@Pointcut来声明切入点表达式 * 后面的其它通知直接使用方法名来引用当前的切入点表达式 */ @Pointcut("execution(public int com.zz.aop.impl.Ar.原创 2020-05-14 07:56:36 · 133 阅读 · 0 评论 -
19- Spring指定切面的优先级
使用@Order代码示例:@Aspect@Component//优先级设置,值越小优先级越高@Order(1)public class ValicationAspect { @Before("execution(public int com.zz.aop.impl.ArithmeticCalculator.*(..))") public void validateArgs(JoinPoint joinPoint) { String methodName=joinPoint.getS..原创 2020-05-09 07:21:04 · 253 阅读 · 0 评论 -
18-Spring面向切面编程AOP
AOP简介:如图:将业务逻辑的验证、日志等公共部分抽取出来,作为切面,与业务逻辑分开AOP术语Spring AOP在 Spring 中启用 AspectJ 注解支持用 AspectJ 注解声明切面前置通知利用方法签名编写 AspectJ 切入点表达式合并切入点表达式让通知访问当前连接点的细节其它通知代码示例:接口public interface Ari...原创 2020-05-07 10:07:39 · 154 阅读 · 0 评论 -
17-日志,验证采用动态代理代替spring AOP
以计算器为例:没有采用动态代理或AOP的方式存在问题使用动态代理解决上述问题代码实现:计算器接口public interface ArithmeticCalculator { int add(int i,int j); int sub(int i,int j); int mul(int i,int j); int div(int i,int j);}计算器实...原创 2020-05-02 17:07:39 · 184 阅读 · 0 评论 -
16-Spring 4.x 新特性:泛型依赖注入
泛型依赖注入Spring 4.x 中可以为子类注入子类对应的泛型类型的成员变量的引用父类BaseService,BaseRepository使用了泛型,并添加了引用。每个父类下可能有多个子类,当子类传入了泛型为同一个类型(例如:UserService extends BaseService和UserRepository extends BaseRepository ),这时子类会自动为相同...原创 2020-04-30 10:07:24 · 187 阅读 · 0 评论 -
15-Spring-基于注解配置 Bean(2)
组件装配使用 @Autowired 自动装配 Bean持久层有一个接口,两个实现类public interface UserRepository { void save();}@Repositorypublic class UserRepositoryImpl implements UserRepository { @Override public void save...原创 2020-04-30 09:04:33 · 131 阅读 · 0 评论 -
14-Spring-基于注解配置 Bean(1)
在 classpath 中扫描组件代码示例:@Componentpublic class TestObject {}public interface UserRepository { void save();}持久层实现类@Repository("userRepository")public class UserRepositoryImpl implemen...原创 2020-04-29 16:54:50 · 137 阅读 · 0 评论 -
13-Spring-Bean 的配置方式:FactoryBean
实现 FactoryBean 接口在 Spring IOC 容器中配置 Bean代码示例:/* * 自定义FactoryBean需要实现FactoryBean接口 */public class CarFactoryBean implements FactoryBean<Car>{ private String brand; public void setBrand(S...原创 2020-04-29 10:44:18 · 182 阅读 · 0 评论 -
12-Spring-Bean 的配置方式:通过工厂方法(静态工厂方法 & 实例工厂方法)
通过调用静态工厂方法创建 Bean示例:public class Car { private String brand; private double price; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; }...原创 2020-04-29 10:13:06 · 204 阅读 · 0 评论 -
11-Spring-IOC 容器中 Bean 的生命周期
IOC 容器中 Bean 的生命周期方法创建 Bean 后置处理器添加 Bean 后置处理器后 Bean 的生命周期流程总结:容器创建的时候执行构造函数及set方法然后执行BeanPostProcessor的postProcessAfterInitialization方法,在这个方法中可以用if刷选bean,并作处理后返回接下来初始化bean执行init方法然后执行BeanP...原创 2020-04-28 20:04:17 · 127 阅读 · 0 评论 -
10-Spring表达式语言:SpEL
SpELSpEL:字面量SpEL:引用 Bean、属性和方法引用其他对象:引用其他对象的属性调用其他方法,还可以链式操作调用静态方法或静态属性:通过 T() 调用一个类的静态方法,它将返回一个 Class Object,然后再调用相应的方法或属性:SpEL支持的运算符号算数运算符:+, -, *, /, %, ^:加号还可以用作字符串连接:比较运算符: <...原创 2020-04-28 17:15:47 · 486 阅读 · 0 评论 -
9-Spring-使用外部属性文件
注册 PropertyPlaceholderConfigurerSpring 2.0:Spring 2.5 之后: 可通过 context:property-placeholder 元素简化: <!-- 导入属性文件 --> <context:property-placeholder location="classpath:da.properties"/>...原创 2020-04-28 09:45:00 · 122 阅读 · 0 评论 -
8-Spring-Bean 的作用域:singleton;prototype;WEB 环境作用域
<!-- 使用bean的scope属性来配置bean的作用域 singleton:单例的。默认值,容器初始时创建bean实例。在整个容器的生命周期内只创建这一个bean。 prototype: 原型的. 每次调用 getBean 方法都会返回一个新的 bean. 且在第一次调用 getBean 方法时才创建实例(创建容器时没有创建bean) --&...原创 2020-04-28 08:47:22 · 231 阅读 · 0 评论 -
7-Spring-bean 之间的关系:继承和依赖
继承 Bean 配置 <!-- 抽象bean:bean的abstract属性为true的bean.这样的bean不能被IOC容器实例化,只用来被继承配置, 若某一个bean的class属性没有指定,则该bean必须是一个抽象的bean--> <bean id="address" p:city="Beijing" p:street="WuDaoKou" abstract="...原创 2020-04-28 07:55:45 · 134 阅读 · 0 评论 -
6-Spring-XML 配置里的 Bean 自动装配
Bean 自动装配Bean 自动装配的缺点原创 2020-04-28 07:47:23 · 95 阅读 · 0 评论 -
5-Spring集合属性配置
<bean id="person3" class="com.atguigu.spring.beans.collection.Person"> <constructor-arg value="Mike"></constructor-arg> <constructor-arg value="67"></const...原创 2020-04-27 18:11:36 · 180 阅读 · 0 评论 -
4-Spring属性匹配细节
注意:引用类型 <bean id="car2" class="com.atguigu.spring.beans.Car"> <constructor-arg value="BaoMa" type="java.lang.String"></constructor-arg> <!-- 如果字面值包含特殊字符,需要用<![CDATA[]...原创 2020-04-27 09:31:15 · 202 阅读 · 0 评论 -
3-Spring 中的 Bean 配置
IOC & DI 概述IOC(Inversion of Control):反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源. 作为回应, 容器适时的返回资源. 而应用了 IOC 之后, 则是容器主动地将资源推送给它所管理的组件, 组件所要做的仅是选择一种合适的方式来接受资源. 这种行为也被称为查找的被动形式DI(Dependency Injection) — I...原创 2020-04-26 21:31:34 · 183 阅读 · 0 评论 -
2-创建Spring的IOC容器对象后发生了什么
代码示例:public class Main { public static void main(String[] args) {// 1.创建Spring的IOC容器对象 ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml"); }}结果分析:在创...原创 2020-04-26 19:17:08 · 129 阅读 · 0 评论 -
1-Spring介绍及搭建Spring开发环境
Spring介绍Spring模块安装插件安装流程搭建Spring开发环境1.下载2解压后,选取下面几个jar包放在类路劲下,然后add to build path结果:原创 2020-04-26 10:02:08 · 289 阅读 · 0 评论