首先在原有的jar包: 需Spring压缩包中的四个核心JAR包 beans .context.core 和expression 下载地址: https://pan.baidu.com/s/1qXLHzAW 以及日志jar包 commons-logging 和log4j 下载地址: https://pan.baidu.com/s/1mimTW5i 再增加一个 spring-aop-5.0.1.RELEASE.jar 增加注解功能的jar包名字是aop有些奇怪(不是annotation ,也不是c…
1.事务回顾 (1).什么是事务: 事务是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. (2).事务特性(ACID) 原子性 :强调事务的不可分割 一致性 :事务的执行的前后数据的完整性保持一致 隔离性 :一个事务执行的过程中,不应该受到其他事务的干扰 持久性 :事务一旦结束,数据就持久到数据库 (3).事务并发安全性问题 脏读 :一个事务读到了另一个事务的未提交的数据 不可重复读 :一个事务读到了另一个事务已经提交的 update 的数据导致多次查询结果不一致 幻…
首先还是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" xmlns:context="http://www.springfram…
1.基于注解的配置: @Component: 基本注解, 标识了一个受 Spring 管理的组件 @Respository: 标识持久层组件 @Service: 标识服务层(业务层)组件 @Controller: 标识表现层组件 将这些架包放入在工程目录下建立的lib文件夹里,并解压 commons-logging-1.1.1 spring-aop-4.0.0.RELEASE spring-beans-4.0.0.RELEASE spring-context-4.0.0.RELEASE spri…
将这些架包放入在工程目录下建立的lib文件夹里,并解压 commons-logging-1.1.1 spring-aop-4.0.0.RELEASE spring-beans-4.0.0.RELEASE spring-context-4.0.0.RELEASE spring-core-4.0.0.RELEASE spring-expression-4.0.0.RELEASE 1.SpEL,实现 Person类,其属性如下,其get,set,tostrong方法就不写了 private Strin…
上一节我们说过Spring对DAO的两个支持分为两个知识点,一个是jdbc模板,另一个是事务管理. 事务是数据库中的概念,但是在一般情况下我们需要将事务提到业务层次,这样能够使得业务具有事务的特性,来管理业务. 例如:在银行的转账系统中,张三转账给李四,需要完成从张三的账户上扣取指定金额并加到李四的账户上,这样一个过程需要具有原子性,即要成功都成功,要失败都失败.转账的过程即两个对账户更新,需要将事务提升到业务层次,使得两个操作具有原子性! 对以上的实现,Spring的API中有两个常用的接口我…
[Java面试五]Spring总结以及在面试中的一些问题.   1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spring框架管理,简单说,就是创建UserService对象控制权被反转到了Spring框架 DI:Dependency Injection 依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件   面试题…
今天学习了spring框架,刚刚入门简单的了解了spring并学习了bean的注入IOC:IOC(Inversion of Control,控制反转)不是什么技术,而是一种设计思想.它的目的是指导我们设计出更加松耦合的程序. 引入: 使用简单代码来实现推演  ,创建一个maven项目,开始我们的推演 创建一个bean类即常说的实体类如下: 我们创建一个测试类 springTest,在测试类中操作,怎么样来获取Student类中 的信息呢(student类中有构造方法,无参,有参,有get,set…
JDBC JDBCTemplate简介 XML配置JDBCTemplate 简化JDBC模板查询 事务管理 事务简介 Spring中的事务管理器 Spring中的事务管理器的不同实现 用事务通知声明式地管理事务 事务传播属性Spring支持的事务传播行为 REQUIRED传播行为 REQUIRED_NEW传播行为 在Spring事务通知中配置传播属性 并发事务所导致的问题 事务的隔离级别 设置隔离事务属性 设置回滚事务属性 超时和只读属性 常用配置实例 主要关注点有: JDBC的配置方式 事务的…
Bean的生命周期方法 src\dayday\Car.java package dayday;import com.sun.org.apache.xpath.internal.SourceTree;import javax.sound.midi.Soundbank;/** * Created by I am master on 2016/11/28. */public class Car { private String name; public void setName(String name…
Spring框架的插件springsource-tool-suite-3.4.0.RELEASE-e4.3.1-updatesite(是一个压缩包)导入步骤: eclipse->help->Instal New Software->点击add,找到该压缩包->选择 Name下面选择带有 /Spring IDC 的多选框->取消最下边的选框  contact all...->next...->finish: 建立一个java project,在工程目录下(day-1…
在项目中经常会在容器启动时,完成特定的初始化操作,如资源文件的加载等. 一 实现的方式有三种: 1.使用@PostConstruct注解,该注解作用于void方法上 2.在配置文件中配置init-method方法 <bean id="student" class="com.demo.spring.entity.Student" init-method="init2"> <property name="name"…
整理了一下之前学习spring框架时候的一点笔记.如有错误欢迎指正,不喜勿喷. 上一节我们给出了三个小demo,具体的流程是这样的: 1.首先在aplicationContext.xml中添加<bean id="自定义id" class="包名.类名">.(还有两种工厂配置) 2.其次写一个自定义类,里面只包含一个系统输出的show(). 3.使用 ApplicationContext hw=new classpathXmlApplicationCont…
aop编程 之使用spring框架实现方法调用前日志输出 使用spring框架实现AOP编程首先需要搭建spring框架环境: 使用Spring框架实现AOP工程编程之后,不需要我们去写代理工厂了,工厂的实例化由spring框架完成. spring框架生成代理对象的秘密: 1. 如果面向接口编程,那么底层采用jdk动态代理生成目标对象 2. 如果没有面向接口编程,那么底层采用cglib动态代理生成目标对象 由于spring的封装,使得我们实现AOP编程变得简单. 搭建Spring环境:引入Jar…
配置通过静态工厂方法创建的bean public class StaticBookFactory { //静态工厂方法: public static Book getBook(String bookName){ System.out.println("静态工厂方法调用..."); Book book = new Book(); book.setBookName(bookName+"_static"); book.setAuthor(new Person()); bo…
通过一个简单的Maven工程来演示Spring的Bean生命周期函数的执行顺序. 下面是工程的目录结构: 直接贴代码: pom.xml文件内容: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst…
创建bean方式,spring创建bean的方式包含:自动注入方式和人工注入方式.分别为:1)xml 配置化方式  2)@bean注解注入方式3)@Component方式 4)接口注入方式 5)import 导入方式. 废话不多说,上代码, 第一种:xml 1.xml 文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org…
在面向对象的程序中,要想调用某个类的成员方法,就需要先实例化该类的对象.在 Spring 中,实例化 Bean 有三种方式,分别是构造器实例化.静态工厂方式实例化和实例工厂方式实例化. 构造器实例化 构造器实例化是指 Spring 容器通过 Bean 对应的类中默认的构造函数实例化 Bean.下面通过案例演示如何使用构造器实例化 Bean. 1. 创建项目并导入 JAR 包 在 MyEclipse 中创建一个名称为 springDemo02 的 Web 项目,然后将 Spring 支持和依赖的…
Spring事务有两种方式: 1.编程式事务:(代码中嵌入) 2.声明式事务:(注解,XML) 注解方式配置事务的方式如下: 首先,需要在applicationContext.xml中添加启动配置,代码如下所示: <!-- 定义事务管理器 --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <pr…
在Spring的世界中, 我们通常会利用bean config file 或者 annotation注解方式来配置bean. 在第一种利用bean config file(spring xml)方式中, 还包括如下三小类 反射模式 工厂方法模式(本文重点) Factory Bean模式 其中反射模式最常见, 我们需要在bean 配置中指明我们需要的bean object的全类名. 例如: <bean id="car1" class="com.home.factoryMe…
@Import注解的作用和在使用spring的xml配置时用到的<import/>类似.但应注意是@Import在使用时必须要保证能被IOC容器扫描到,所以通常它会和@Configuration或者@ComponentScan配套使用. @Import可以用来如下四种方式的导入: 带有@Configuration注解的类 实现了ImportSelector接口的类 实现了ImportBeanDefinitionRegistrar接口的类 被IOC容器注册的bean的class @Import在…
1.用构造器来实例化 <bean id="hello2" class="com.hsit.hello.impl.ENhello" /> 2.使用静态工厂方法实例化 要写一个bean,bean中定义一个静态方法,生成bean,配置factory-method指定静态方法,运行时容器就会自动调用静态方法生成实例 bean package com.hsit.hello.impl; import com.hsit.hello.IHello; public cla…
1. 例如:在src的目录下又多创建了一个配置文件,现在是两个核心的配置文件,那么加载这两个配置文件的方式有两种! * 主配置文件中包含其他的配置文件: <import resource="applicationContext2.xml"/> * 工厂创建的时候直接加载多个配置文件: ApplicationContext applicationContext = new ClassPathXmlApplicationContext( "applicationCon…
仓库地址 w4ngzhen/springboot-simple-guide: This is a project that guides SpringBoot users to get started quickly through a series of examples (github.com) Chapter01-如何用Spring框架声明Bean 前言 在上一章中,我们已经掌握了Spring最基本的使用方式: 通过使用@Component注解标记我们的类作为一个Bean组件. 使用Spr…
1 Spring框架Bean实例化的方式: 提供了三种方式实例化Bean. 构造方法实例化:(默认无参数) 静态工厂实例化: 实例工厂实例化: 无参数构造方法的实例化: <!-- 默认情况下使用的就是无参数的构造方法. --> <bean id="bean1" class="cn.itcast.spring3.demo2.Bean1"></bean> 静态工厂实例化: <!-- 第二种使用静态工厂实例化 --> <…
IOC装配Bean: 1.1.1 Spring框架Bean实例化的方式: 提供了三种方式实例化Bean. * 构造方法实例化:(默认无参数) * 静态工厂实例化: * 实例工厂实例化: 无参数构造方法的实例化: <!-- 默认情况下使用的就是无参数的构造方法. --> <bean id="bean1" class="cn.itcast.spring3.demo2.Bean1"></bean> 静态工厂实例化: <!-- 第二…
IOC装配Bean (1)Spring框架Bean实例化的方式提供了三种方式实例化Bean 构造方法实例化(默认无参数,用的最多) 静态工厂实例化 实例工厂实例化 下面先写这三种方法的applicationContext.xml配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"…
IOC装配Bean (1)Spring框架Bean实例化的方式提供了三种方式实例化Bean 构造方法实例化(默认无参数,用的最多) 静态工厂实例化 实例工厂实例化 下面先写这三种方法的applicationContext.xml配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"…
import org.springframework.context.annotation.AnnotationConfigApplicationContext; 使用AnnotationConfigApplicationContext可以实现基于Java的配置类加载Spring的应用上下文.避免使用application.xml进行配置.在使用spring框架进行服务端开发时,个人感觉注解配置在便捷性,和操作上都优于是使用XML进行配置; 使用JSR250注解需要在maven的pom.xml里…
当使用spring AOP时,判断目标方法上的注解进行相关操作,如缓存,认证权限等 自定义注解 package com.agent.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.…