
spring
笨鸟不是菜鸟
路虽远,行则必达
展开
-
spring学习笔记-从‘动态代理’理解spring的面向切面编程
1.面向切面编程中的一些专业术语横切关注点: 首先一个方法可能有很多关注点,那么多个方法就有多个关注点,但是这些方法的关注点中可能有一两个是所有方法都需要关注的,也就是横跨了多个模块(比如各个模块的增删改查,对数据库进行了操作,我们需要记录日志信息),那么我们就可以将这些点叫做横切关注点。通知方法: 通常在方法中我们比较关注的地方会做一些操作,不管是记录一些日志还是发送一些通知,这些都是通过方法进行的,并且因为这些方法高度通用,所以我们会将它抽象后定义到一个独立的class中,这个class就是“切面原创 2020-09-28 10:02:24 · 269 阅读 · 0 评论 -
spring学习笔记-java代理模式
1.什么是代理模式代理模式是面向对象编程中比较常见的设计模式。其目的就是避免用户直接接触实际的业务类而带来的不必要的麻烦,或者增强被代理类的功能而又不和被代理类的业务逻辑耦合。代理模式就像是给人穿上了一套“机械骨骼”,增强了人的身体机能,但是又可以随时脱掉,并不会像打了兴奋剂一样,进入容易再想出来就难了。代理模式主要分为静态代理和动态代理两种,但是这两种代理模式有一个共同的特点就是被代理类一定要实现一个接口。不管是静态代理还是动态代理他们底层的实现方式都是实现被代理类的接口。1.静态代理静态代原创 2020-08-28 20:29:54 · 195 阅读 · 0 评论 -
spring学习笔记-泛型依赖注入
1.简单继承结构的泛型依赖注入我们使用最简单的继承结构来实现泛型的依赖注入,带泛型的类baseEntity,继承了baseEntity的user和organization,以及一个方便理解泛型依赖注入是怎么回事。1.创建baseEntitypackage com.hao.spring.autowired.model;public class BaseEntity<T> { private Integer status; public Integer getSt原创 2020-08-28 20:26:44 · 609 阅读 · 0 评论 -
spring学习笔记-使用@autowired注解实现对象属性的自动装配
使用@autowired实现对象的依赖注入是spring的核心功能之一,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。1.使用@autowired实现依赖注入(DI)@autowired要做的工作其实就是初始化我们类的成员变量,不管是model中的属性字段,还是serviceImpl中我们要引用的其他接口对象,我们都可以使用@autowired来进行初始化操作。使用@autowired注解最大的好处就是简化我们操作。之前我们要将对象注入到IOC容器中,需要在xml中配置bean和.原创 2020-08-15 15:44:03 · 2995 阅读 · 0 评论 -
spring学习笔记-通过注解将对象注入IOC容器
1.通过注解将对象注入IOC容器我们可以通过使用以下四个注解的任意一个将类快速注入到IOC容器中,而不必再去applicationContext中进行繁琐的配置:@controller: org.springframework.stereotype.Controller控制器,推荐添加在控制类上@service: org.springframework.stereotype.Service业务逻辑,推荐添加在业务接口类上@repository: org.springframework.stere原创 2020-07-30 18:48:01 · 2675 阅读 · 0 评论 -
spring学习笔记-IOC容器中的自动装配和spEL表达式
1.使用autowire属性为自定义对象进行自动赋值我们可以在IOC容器中,使用autowire属性为bean中的引用数据类型进行自动赋值(也就是我们注册到IOC中的自定义对象,基本数据类型因为是要给定具体的值所以直接赋值就好了)。autowire分别有5个属性:default,no,byName,byType,constructor,采用不同的检索规则为对象赋值1. autowire="byName"通过属性名称在IOC容器中匹配id对应的bean对象当User中有一个Organization原创 2020-07-30 18:42:48 · 308 阅读 · 0 评论 -
spring学习笔记-通过context名称空间引入外部配置文件管理数据库连接池
1.传统方式创建一个数据库连接池package com.hao.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class DbConnectConfig { public static final String URL = "jdbc:mysql://192.168.1.160:3306/原创 2020-07-29 08:53:31 · 1331 阅读 · 0 评论 -
spring学习笔记-IOC容器中bean的生命周期和后置处理器
1.bean的生命周声明单例bean的生命周期: 从容器的创建开始到容器的关闭结束。实例bean的生命周期: 从容器中获取对象开始,到自行销毁对象结束。我们可以使用init-method和destroy-method方法为bean对象指定初始化对象或者销毁对象时需要做的操作。单例bean1. 在对象的class中创建需要执行的方法 public void initBean() { System.out.println("初始化方法"); } public void destroy原创 2020-07-20 19:49:40 · 232 阅读 · 0 评论 -
spring学习笔记-使用静态/实例工厂方法创建bean对象
1.IOC容器中bean的作用域我们可以在标签中使用scope属性来控制当前的bean对象的作用范围,scope的属性值有:singleton: 单例模式,在不指定scope的情况下bean的默认值。单例模式其实就是创建一个静态的bean对象,也就是在内存中单独开辟一个空间,将这个对象实实在在的放在这里,你用或者不用它就在这里。单例对象会在IOC容器创建时就创建完成,在调用时永远都是同一个对象(内存地址是相同的)。1.1.单例模式下对象在容器创建时就会创建完成,并且只会创建一次对象在获取IOC容器时原创 2020-07-20 19:44:27 · 1479 阅读 · 0 评论 -
spring学习笔记-IOC容器中bean的继承、抽象和依赖关系
1.bean的继承IOC容器中bean的继承和java或者其他语言中传统意义上的继承并不一样,它并不是说将其他class中的属性或方法继承过来(比如我们的业务对象继承baseEntity对象,它相当于是一个增量的继承),而IOC容器中bean的继承更像是克隆一样,当我们继承了其他bean对象时,我们就相当于得到了一个被继承bean的克隆体,我们只需要起一个别名(bean的id属性)就可以了,或者也可以修改其中的某个属性。在bean中使用parent属性继承bean对象<bean id="rule原创 2020-07-04 18:15:14 · 371 阅读 · 0 评论 -
spring学习笔记-在IOC容器中为复杂数据类型赋值
所有的基本数据类型我们都可以在property标签中使用value属性进行赋值,而所有的复杂数据类型的赋值都必须在property的标签体中进行原创 2020-07-04 14:36:52 · 252 阅读 · 0 评论 -
spring学习笔记-IOC容器如何为对象进行初始化赋值
在IOC容器中初始化对象有两种方式,一种是使用property调用set方法进行初始化赋值,另一种是调用constructor-arg调用有参构造器进行初始化赋值1.在bean中使用property调用set进行初始化赋值在bean中使用property标签进行初始化赋值,这种赋值方式会调用bean对象中的set方法进行赋值操作,它会先调用无参构造器创建对象,然后调用set方法进行赋值操作验证测试:添加无参构造器和打印输出,为set方法添加打印输出使用property进行初始化赋值在test中原创 2020-07-04 14:22:09 · 3761 阅读 · 0 评论 -
spring学习笔记-初步理解IOC容器
1.创建一个简单的spring项目1. 创建一个java项目,并导入spring-core的依赖jar包在项目下创建一个lib文件夹,将spring的核心jar包放入该文件夹,并将jar包引入项目(build path)2. 创建applicationContext.xml2.1. 在src(类的根路径)下创建一个xml文件,并写入统一的头声明<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spri原创 2020-07-01 20:33:02 · 265 阅读 · 0 评论 -
spring学习笔记-spring的核心模块介绍
1.下载spring所需的jar包jar包下载链接: spring Artifact Repository Browser进入jar包选择页面,选择自己想要下载的版本(我选择的是4.3.27),右键点击“Native Browser”进入下载页面,下载所需文件3. 解压“spring-framework-4.3.27.RELEASE-dist.zip”4. 解压后我们在lib文件夹下会看到60个jar文件,所有的jar文件都是以3个为一组,对应Spring的20个模块的功能.原创 2020-07-01 20:15:49 · 612 阅读 · 0 评论 -
spring学习笔记-什么是spring?
1.什么是spring?spring是一个开源的、轻量级的java应用程序开发框架,最初是由 Rod Johnson 编写的,并且于 2003 年 6 月首次在 Apache 2.0 许可下发布,它的主要特性是IOC(控制反转)和AOP(面向切面编程)。框架:框架就是一些别的大神写好的、可高度复用的代码抽取成的jar文件,你导入到自己的项目,在里面修修改改或者调东调西,然后感觉自己秒天秒地秒空气,java不值得的东西。2.spring的特点1.低浸入式spring并不会强制要求项目使用spri原创 2020-07-01 19:59:25 · 234 阅读 · 0 评论