
Spring
文章平均质量分 57
时间不会赖着不走
这个作者很懒,什么都没留下…
展开
-
Spring中@Conditional注解详解
return new Dog("金毛","公");return new Dog("拉布拉多","母");原创 2023-01-07 18:49:48 · 2967 阅读 · 0 评论 -
Spring中@Value注解详解
一种就是使用Spring中@Value注解,还有一种是使用SpringBoot中的@ConfigurationProperties注解,本篇文章主要是介绍常用的第一种方式。第二种@Value(“#{}”)是用来表示 SpEl 表达式通常用来获取 bean 的属性,或者调用 bean 的某个方法。@Value 注解有两种方式,@Value(“${}”)和@Value(“#{}”)两种方式。第一种 @Value(“${}”)是用来获取配置文件。原创 2022-11-13 01:32:56 · 4927 阅读 · 0 评论 -
Spring中的MultipartFile详解
在Java中处理文件向来是一种不是很方便的操作,然后随着Spring框架的崛起,使用Spring框架中的MultipartFile来处理文件也是件很方便的事了,今天就为大家带来剖析MultipartFile的神秘面纱。MultipartFile本身并没有很复杂的结构,也正是他强力封装了很多便捷的api才引来很多人的使用。一、概述 MultipartFile为org.sprin原创 2022-05-17 18:02:25 · 5732 阅读 · 0 评论 -
Spring中的新注解
Spring中新注解在之前的操作我们发现不管怎么样子,我们依然离不开 spring 的 xml 配置文件,那么能不能不写这个 bean.xml,所有配置都用注解来实现呢?下面就介绍几个Spring里面的新注解分析前面的操作无非就是把之前xml里面的东西用注解来实现。@Configuration用于指定当前类是一个 spring 配置类@ComponentScan用于指定 spring 在初始化容器时要扫描的包。 作用和在 spring 的 xml 配置文件中的:<context:com原创 2022-04-11 22:01:54 · 844 阅读 · 0 评论 -
Spring基于注解加xml配置的IoC实现的CRUD
Spring中基于注解配置IOC的CRUD使用 DBAssit 作为持久层解决方案使用 c3p0 数据源创建数据库和编写实体类create table account( id int primary key auto_increment, name varchar(40), money float)character set utf8 collate utf8_general_ci;insert into account(name,money) values('aaa',1000);in原创 2022-04-11 17:43:40 · 683 阅读 · 0 评论 -
Spring中的IOC降低耦合性的理解
学到Spring老师一定会讲一句话:IOC能够降低耦合性。可是为什么会降低耦合性,许多老师就讲不清了,下面我们通过举一些栗子来说明为什么IOC能够降低耦合性。第一层-传统方式通常我们写java程序都是通过实例化来获取对象,代码如下:Dog dog = new Dog();dog.woof();如果我们想要将Dog换成Cat,就需要在所有的程序中将Dog dog = new Dog()换成Cat cat = new Cat().除此之外,cat对象没有woof方法,而是具有bark方法,那么所有程原创 2022-04-11 00:24:21 · 644 阅读 · 0 评论 -
Spring中的BeanFactory和ApplicationContext介绍
首先我们可以在类的继承关系中看到这样一个图在上一篇Spring中基于xml的IOC解耦中我们用的就是ApplicationContext接口中的一个实现类ClassPathXmlApplicationContext,现在我们详细介绍一下ApplicationContext里面的实现类ClassPathXmlApplicationContext:它是从类的根路径下加载配置文件 推荐使用这种FileSystemXmlApplicationContext:它是从磁盘路径上加载配置文件,配置文件可以在磁原创 2022-04-10 11:56:10 · 483 阅读 · 0 评论 -
Spring中基于xml的IOC解耦
IOC是什么控制反转,顾名思义就是控制权发生反转,例如 IUserService service = new UserService(); IUserService service= (IUserService) BeanFactory.getBean("UserService");上面那一段控制权是new,就是完全自主控制引用那个dao,下面那个是把控制权交给BeanFactory,由BeanFactory通过后面的字符串配置。这种控制权的转移就叫控制反转。IOC能做什么削减计算机程序的耦原创 2022-04-10 11:02:28 · 643 阅读 · 0 评论 -
Spring中使用工厂模式解耦详解
引入类之间的耦合性在我们学习jdbc访问数据库时,具体流程是首先在maven里面导入依赖<packaging>jar</packaging> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId>原创 2022-04-09 15:16:01 · 1548 阅读 · 0 评论 -
Java中的Servlet是单例类型详解
servlet 是单例。如何证明: 构造函数植被执行一次。单例 线程不安全。为什么?因为 当多线程时, 会共享一个全局变量。(当2个浏览器访问时, 虽然各自次数加1,但是没有及时刷新到缓存里,依旧会显示最终的结果为1.)如何解决:加syn锁。 所以效率会变低...原创 2022-04-09 14:41:45 · 672 阅读 · 0 评论 -
Spring中的IOC控制反转
原来我们都知道一个是service调用dao一个是servlet调用service都是耦合性十分强的操作我们每一个controller里面都要new一个dao对象,这样每次的创建和回收都比较麻烦,所以Spring为我们创建一个IOC容器里面放有那些对象。下次用就可以直接从工厂里面拿即可了。...原创 2022-01-13 15:54:01 · 148 阅读 · 0 评论 -
EJB到底是什么?(通俗易懂白话文
EJB到底是什么?(通俗易懂白话文转载 2022-01-05 10:31:38 · 261 阅读 · 0 评论 -
JoinPoint的用法
public void doBefore(JoinPoint jp) throws NoSuchMethodException { visitTime = new Date();//当前时间就是开始访问的时间 clazz = jp.getTarget().getClass(); //具体要访问的类 String methodName = jp.getSignature().getName(); //获取访问的方法的名称 Object[] a..原创 2021-02-26 12:10:52 · 1602 阅读 · 0 评论 -
spring5与jdk 版本要求
spring5.0** 在 2017 年 9 月发布了它的 GA(通用)版本。该版本是基于 jdk8 编写的, 所以 jdk8 以下版本将无法使用。 同时,可以兼容 jdk9 版本。 tomcat 版本要求 8.5 及以上 jdk要求jdk8以上。注: 我们使用 jdk8 构建工程,可以降版编译。但是不能使用 jdk8 以下版本构建工程。 由于 jdk 和 tomc原创 2021-02-09 15:44:18 · 5349 阅读 · 1 评论 -
spring基于注解的声明式事务
配置步骤第一步:配置事务管理器并注入数据源<!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property></bean>第二步:在业务层使用@Tra原创 2021-02-09 15:35:45 · 822 阅读 · 0 评论 -
spring基于xml的声明式事务
事务处理位于业务层, Spring 提供了分层设计业务层的事务处理解决方案。spring 的事务控制都是基于 AOP 的,原创 2021-02-09 14:35:31 · 165 阅读 · 0 评论 -
spring中使用环绕通知解决基于注解的通知顺序问题
今天写代码发现,spring中最终通知和后置通知的顺序问题package com.utils;import org.aspectj.lang.annotation.*;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;/** * 和事务管理相关的工具类,它包含了,开启事务,提交事务,回滚事务和释放连接 */@Compon原创 2021-02-09 14:25:43 · 457 阅读 · 0 评论 -
DbUtils和QueryRunner
DbUtils简介根据官网的介绍,DbUtils是一种 JDBC Utility Component (翻译过来大概就是:JDBC实用部件),故名思意,和数据库操作有关官网上的简介也称之为 JDBC helper library ,由此可知,DbUtils是一个工具类库,用来进行数据库通信的用法官方原文:The core classes/interfaces in DbUtils are QueryRunner and ResultSetHandler(在 DbUtils 中的核心类/接口为 Que原创 2021-02-09 12:53:08 · 245 阅读 · 0 评论 -
spring中的依赖说明
如代码中注释所示<dependencies> <!--暂时知道这个是spring实现ioc的--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.原创 2021-02-09 12:46:37 · 245 阅读 · 0 评论 -
spring中的JdbcTemplate
什么是JdbcTemplate 它是 spring 框架中提供的一个对象,是对原始 Jdbc API 对象的简单封装。 spring 框架为我们提供了很多的操作模板类。如图所示怎么创建JdbcTemplate第一种方式在dao层在dao层/** * 账户的持久层实现类 */@Repositorypublic class AccountDaoImpl2 implements IAccountDao {原创 2021-02-09 12:03:28 · 242 阅读 · 0 评论 -
spring基于 注解的 AOP 的前后置通知,异常通知,最终通知,环绕通知
1.IAccountService接口和实现类package com.service;/** * 账户业务层的接口 */public interface IAccountService { public void saveAccount() ;}package com.service.impl;import com.service.IAccountService;import org.springframework.stereotype.Service;/** *原创 2021-02-08 19:22:37 · 351 阅读 · 0 评论 -
spring基于 XML 的 AOP 的环绕通知
环绕通知 * 问题: * 当我们配置了环绕通知之后,切入点方法没有执行,而通知方法执行了。 * 分析原因: * 通过对比动态代理中的环绕通知代码,发现动态代理的环绕通知有明确的切入点方法调用,而我们的代码中没有。 * 解决: * Spring框架为我们提供了一个接口:ProceedingJoinPoint。该接口有一个方法proceed(),此方法就相当于明确调用切入点方法。 * 该接口可以作为环绕通知的方法参数,在程序执行时,spring框架会为我们提原创 2021-02-08 18:58:59 · 217 阅读 · 0 评论 -
spring基于 XML 的 AOP 的前后置通知,异常通知,最终通知
1.首先导入依赖<?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-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.or原创 2021-02-08 17:06:39 · 548 阅读 · 6 评论 -
Spring中AOP来解决银行案例
Joinpoint(连接点): 所谓连接点是指那些被拦截到的点。在 spring 中,这些点指的是方法,因为 spring 只支持方法类型的连接点。Pointcut(切入点): 所谓切入点是指我们要对哪些 Joinpoint 进行拦截的定义。所有的切入点都是连接点,但连接点可能不是切入点,只有被增强的方法为切入点Advice(通知/增原创 2021-02-08 13:31:57 · 357 阅读 · 0 评论 -
ThreadLocal
往ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的。为什么要学习ThreadLocal?管理Connection 最典型的是管理数据库的Connection:当时在学JDBC的时候,为了方便操作写了一个简单数据库连接池,需要数据库连接池的理由也很简单,频繁创建和关闭Connection是一件非常耗费资源的操作,因此需要创建数据库连接池~那么,数据库连接池的连接怎么管理呢??我们交由ThreadLocal来原创 2021-02-08 11:23:33 · 139 阅读 · 0 评论 -
Java中银行转账的一些问题
写在前面,一个经典的例子银行转账 public void transfer(String sourceName, String targetName, Float money) { //根据名称查询两个账户信息 Account source = accountDao.findByName(sourceName); Account target = accountDao.findByName(targetName); //转出账户减钱,转入原创 2021-02-08 10:42:50 · 1400 阅读 · 0 评论 -
Spring基于xml配置的IoC实现的CRUD
创建数据库和编写实体类create table account( id int primary key auto_increment, name varchar(40), money float)character set utf8 collate utf8_general_ci;insert into account(name,money) values('aaa',1000);insert into account(name,money) values('bbb',1000);inser原创 2021-02-07 22:46:17 · 200 阅读 · 0 评论 -
Spring中的注解详解
曾经XML的配置:<bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl" * scope="" init-method-m="" destroyethod=""> * <property name="" value="" | ref=""></property> * </bean>Spring基于Annotation装配原创 2021-02-07 21:26:51 · 275 阅读 · 0 评论 -
Spring的依赖注入以及注入方式详解
依赖注入的概念 依赖注入: Dependency Injection。 它是 spring 框架核心 ioc 的具体实现。 我们的程序在编写时, 通过控制反转, 把对象的创建交给了 spring,但是代码中不可能出现没有依赖的情况。ioc 解耦只是降低他们的依赖关系,但不会消除。 例如:我们的业务层仍会调用持久层的方法。 那这种业务层和持久层的依赖关系, 在使用 spring 之后, 就让 spri原创 2021-02-07 17:47:02 · 442 阅读 · 1 评论 -
Spring中实例化Bean的三种方式及作用范围和生命周期
bean 标签作用: 用于配置对象让 spring 来创建的。 默认情况下它调用的是类中的无参构造函数。如果没有无参构造函数则不能创建成功。属性: id: 给对象在容器中提供一个唯一标识。用于获取对象。 class: 指定类的全限定类名。用于反射创建对象。默认情况下调用无参构造函数。 sco原创 2021-02-07 17:28:06 · 710 阅读 · 0 评论 -
spring中的IOC及基于xml的Ioc容器
1创建一个maven工程准备好dao和service2.导入spring依赖<?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-instance" xsi:schemaLocation="http://maven.apache.org/原创 2021-02-07 11:36:14 · 241 阅读 · 1 评论 -
使用工厂来解耦
以前我们编写web项目总是dao层service层,在service调用dao里面时会用到以下代码 private IAccountDao accountDao = new AccountDaoImpl(); IAccountService as = new AccountServiceImpl();一个是service调用dao一个是servlet调用service都是耦合性十分强的操作为了解除这个耦合性,我们引用了工厂BeanFactory一个创建Bean对象的工厂Bean原创 2021-02-07 09:58:53 · 216 阅读 · 0 评论 -
耦合
耦合:程序之间的依赖包括: 类之间的依赖 方法之间的依赖原创 2021-02-06 16:45:43 · 143 阅读 · 0 评论