![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring框架
文章平均质量分 66
Java硬件工程师
中国科学技术大学毕业,原支付宝Java开发工程师,立志做一名资深全栈工程师
展开
-
IDEA断点调试
1. Debug 的设置设置 Debug 连接方式,默认是 Socket。Shared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,内存占用相对较少。原创 2021-07-26 19:36:26 · 634 阅读 · 1 评论 -
Spring框架----切入点表达式的写法
上一节我们实现了Spring的基于XML的AOP。Spring的基于 XML的AOP的实现我们将测试一下上一节的代码执行结果/*测试aop的配置*/public class AOPTest { public static void main(String[] args) { //1.获取容器 ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml"); //2.获取对原创 2020-08-13 12:24:42 · 1682 阅读 · 0 评论 -
Spring框架----Spring的环绕通知
问题:当我们配置了环绕通知之后,切入点方法没有执行,而通知方法执行了/*环绕通知* 问题:当我们配置了环绕通知之后,切入点方法没有执行,而通知方法执行了* */public void aroundPrintLog(){ System.out.println("(环绕通知)Logger类中的aroundPrintLog方法开始记录日志了");}<!--配置环绕通知 详细的注释请看logger类中--><aop:around method="aroundPrintLog原创 2020-08-13 12:45:12 · 2361 阅读 · 0 评论 -
Spring框架----通用切入点表达式
配置切面配置切入点表达式,id用于指定表达式的唯一标识,expression用于指定表达式内容此标签写在aop-aspect标签内部,只能当前切面使用,如果有新的切面,只能重新配置它还可以写在aop:aspect外面,此时可供所有切面使用如果是放在外面,就一定要放在aspect标签的前面当改了位置,发现异常的时候,就看约束里是否有顺序上的要求aop:config <!--配置切面--> <!--配置切入点表达式,id用于指定表达式的唯一标识,expression原创 2020-08-13 12:42:37 · 1656 阅读 · 0 评论 -
Spring框架----四种常用通知类型
用于记录日志的工具类,它里面提供了公共的代码/*用于记录日志的工具类,它里面提供了公共的代码*/public class Logger { /*前置通知*/ public void beforePrintLog(){ System.out.println("(前置通知)Logger类中的beforePrintLog方法开始记录日志了"); } /*后置通知*/ public void afterReturningPrintLog(){原创 2020-08-13 12:38:17 · 2015 阅读 · 0 评论 -
Spring框架----Spring的基于XML的AOP的实现
导入依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.2.RELEASE</version> </dependency> <dependency> &原创 2020-08-13 10:50:54 · 1696 阅读 · 0 评论 -
Spring框架----AOP的概念及术语
1.什么是AOPAOP:全称是 Aspect Oriented Programming 即:面向切面编程简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。2.AOP 的作用及优势作用: 在程序运行期间,不修改源码对已有方法进行增强。优势: 减少重复代码,提高开发效率,维护方便3.AOP 的实现方式使用动态代理技术4.AOP 的术语及实现细节1.Joinpoint(连接点):所谓连接点是指那些被拦截到的点。原创 2020-08-13 09:37:05 · 2217 阅读 · 1 评论 -
Spring框架----基于子类的动态代理
上节,我们提到了基于接口的动态代理。https://blog.csdn.net/qq_39736597/article/details/107971572来完成通过中间代理商,消费者从生产商那里购买产品的功能。这种动态代理要求第三方jar包的支持。cglib依赖,版本是2.1_3基于子类的动态代理涉及的类:Enhancer提供者:第三方cglib库如何创建代理对象使用Enhancer类中的create方法创建代理对象的要求被代理类不能是最终类(最终类无法创建子类)create方法的参原创 2020-08-13 09:24:13 · 1626 阅读 · 0 评论 -
Spring框架----基于接口的动态代理
由我们前面对代理的分析https://blog.csdn.net/qq_39736597/article/details/107971509有生产商,销售人员和消费者这3个角色,销售人员是中间代理商。代理销售和售后的工作。而在刚开始的时候,我们并没有销售人员。根据这样的思路,我们写出以下代码接口IProducer//对生产厂家要求的接口。public interface IProducer { //销售 public void saleProduct(float money);原创 2020-08-13 09:13:56 · 1976 阅读 · 1 评论 -
Spring框架----代理的分析
请看下图代理:在十八年前左右,买电脑的时候,那个时候买电脑是生产厂家在一些商场租一块地然后销售电脑。我作为消费者就直接找到厂家来购买电脑, 厂家也会对我买到的电脑进行售后。那个年代电脑生产和销售售后都是由生产厂家来做的。但是随着时间的推移,这两件事生产厂家照顾不过来,于是公司的运营成本就分成了两块,一块是生产,一块是销售售后。后来,很多人看到了销售和售后的商机,现在,负责销售和售后的就叫做经销商,也叫代理商。而我们买电脑的过程中,之前的那条路就走不通了,我们只能找到经销商来购买电脑,同时,经销商会把原创 2020-08-13 08:50:50 · 1649 阅读 · 0 评论 -
Spring框架----Spring的bean注解
这里能看出什么?红线两行表明了它可以通过调用构造函数来进行实例化,因为这都是newInstance,上面可以加参数,下面这个没有任何参数。对比图一上面一行,他们的作用是不是是一样的,上面图的有一个全限定类名,它可以反射创建该对象,并且调用一个单参构造,把dataSource参数传进去,而下面的也是调用构造函数,有一个参数传进去。但是他两的效果不一样,xml方式除了会创建对象,还会扔到springIOC容器中,key-value对,而new方式只是一个方法,不会有人把它给你存入spring容器。如果我.原创 2020-08-12 09:27:52 · 1785 阅读 · 0 评论 -
Spring框架----Confinguration和Component-Scan注解
如何不用xml配置文件这里面有两块内容,第一块是component-scan.第二块是对象的创建,我们之前的注解都是解决了我们自己写的类加一个注解。我们建了一个SpringConfiguration类,该类是一个配置类,它的作用和bean.xml是一样的我们将要使用到两个新的注解Configuration:它的作用是指定当前是一个配置类。ComponentScan:作用:用于通过注解指定spring在创建容器时要扫描的包/** 该类是一个配置类,它的作用和bean.xml是一样的。* sp原创 2020-08-12 09:23:20 · 1736 阅读 · 0 评论 -
Spring框架----自动按照类型注入的Autowired注解
当执行如下代码时(配置文件中未注入)private IAccountDao accountDao;public void saveAccount() { accountDao.saveAccount();}运行时显示空指针异常Autowired作用:自动按照类型注入,只要容器中有唯一的一个bean对象类型和要注入的变量类型匹配,就可以注入成功。出现位置:可以是成员变量上,也可以是方法上@Autowiredprivate IAccountDao accountDao;publi原创 2020-08-12 09:11:55 · 3683 阅读 · 1 评论 -
Spring框架----用于创建对象的Component注解
当我们在AccountServiceImpl上面写一个@component注解的时候,他就会把这个类反射创建一个对象,并且存入spring容器中。spring容器时一个map容器,是由key-value组成的,存这个对象,是value。注解相对xml更为简单一些,因为这里面直接写上一个标签,后来写上一个注解,之后再也不用在bean.xml中配置了,想创建对象就加注解。当我们解析配置文件时,就会创建容器,从而创建对象,而此时配置是空的,没有定义。如果我们随便用,也没有代码的问题,没有一个限制。原创 2020-08-12 09:03:10 · 3771 阅读 · 0 评论 -
Spring框架----Spring常用IOC注解的分类
学习基于注解的IOC配置,我们应该知道,注解配置和xml配置要实现的功能都是一样的,都是要降低程序的耦合,只是配置的形式不一样,关于实际的开发中到底是使用xml还是注解,每家公司有着不同的使用习惯,所以这两种配置方式我们都需要掌握曾经xml的配置:<property name=" " value=" “/ref=” ">按照xml方式的功能将其分为四类。1.用于创建对象的注解他们的作用就和在xml配置文件中编写一个标签实现的功能是一样的2.用于注入数据的注解他们的作用就和在x原创 2020-08-12 08:54:07 · 1674 阅读 · 0 评论 -
Spring框架----Spring的依赖注入
1.spring的依赖注入的概念依赖注入:dependency InjectionIOC的作用:降低程序之间的依赖关系,但不是消除。依赖关系的管理:以后都交给了spring来维护在当前类中需要用到其他类的对象,由spring为我们提供,我们只需要在配置文件中说明依赖关系的维护:称之为依赖注入依赖注入:能注入的数据有三类基本类型和String其他的bean类型(在配置文件中配置过的bean)复杂类型/集合类型注入的方式有三种第一种:使用构造函数提供第二种:使用set方法提供第三种:使原创 2020-08-11 15:34:33 · 1913 阅读 · 0 评论 -
Spring框架----Spring的bean的生命周期
bean对象的生命周期单例对象出生:当容器创建时,对象出生活着:只要容器存在,对象一直活着死亡:只要容器销毁,对象消亡总结:单例对象的生命周期和容器相同<bean id="accountService" class="com.yujie.service.Impl.AccountServiceImpl" scope="singleton"init-method="init" destroy-method="destory"></bean>public void ini原创 2020-08-11 15:29:56 · 1670 阅读 · 0 评论 -
Spring框架----Spring的bean的作用范围
bean在通常情况下都是一个单例的beanbean的作用范围调整bean标签的scope属性,作用:用于指定bean的作用范围取值:singleton:单例,也是默认值,常用prototype:多例,常用request:作用于web应用的请求范围session:作用于web应用的会话范围global-session:作用于集群环境的会话范围,或者叫全局会话范围,当不是集群环境时,它就是session<bean id="accountService" class="com.yujie.原创 2020-08-11 15:27:20 · 1961 阅读 · 0 评论 -
Spring框架----Spring的bean之三种创建bean对象的方式
第一种方式:使用默认构造函数创建在spring中的配置文件中,使用bean标签,配以id和class属性之后,且没有其他标签时,采用的就是默认构造函数创建bean对象,此时类中没有默认构造函数,则对象无法创建。<bean id="accountService" class="com.yujie.service.Impl.AccountServiceImpl"></bean>而在AccountServiceImpl对应创建方法一,加了一个参数,没有重写默认构造函数,此时代表原创 2020-08-11 15:24:56 · 2134 阅读 · 0 评论 -
Spring框架----Spring的IOC
1.SpringIOC概念和前期准备图中两个代码代表了两种不同的创建对象的方式第一种创建对象的方式,我们采用的是new的方式,在采用new的方式创建对象的时候我们在找对象的时候,是主动的在找,应用app是直接的跟资源联系,他们之间是有必然的联系,是消除不掉的,资源独立就变得很难采用第二种方式创建对象的时候,就是如下图app断开了和资源的联系,找工厂要一个资源,由工厂负责给我们的资源取得联系,把想要的资源返回给我们的应用中,从而实现应用和资源之间的依赖关系。这是IOC。为什么叫控制反转。把原创 2020-08-11 15:19:31 · 1699 阅读 · 0 评论 -
Spring框架----IOC的概念和作用之工厂模式
创建bean对象的工厂bean在计算机英语中,有可重用组件的含义可重用:可反复使用。组件:组成部分,比如service可以被servlet反复使用,dao被service使用。service可以看成是可重用的组成部分。javabean>=实体类,用Java语言编写的可重用组件bean对象的工厂它就是创建service和dao对象的如何创建:第一个需要一个配置文件来配置我们的service和dao配置的内容:全限定类名,唯一标识(key-value)(用于取到这个类)第二个通过读取配置文原创 2020-08-11 15:09:45 · 1797 阅读 · 0 评论 -
Spring框架----IOC的概念和作用之程序的耦合和解耦
1.编译期的依赖请看如下程序(程序运行在idea中,导入过mysql驱动)//1.注册驱动DriverManager.registerDriver(new com.mysql.jdbc.Driver());//程序运行没有上面的jar是不行的//2.获取连接Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/springdb","root","root");//3.获取操作数据库的预处理对象Pre原创 2020-08-11 15:02:58 · 1743 阅读 · 1 评论 -
Spring框架----Spring框架的基本概念
1.spring 是什么Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IOC(Inverse Of Control: 控制反转)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多 著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架。mybatis是持久层框架,spr原创 2020-08-11 14:50:22 · 2051 阅读 · 0 评论