![](https://img-blog.csdnimg.cn/8ecb0abb93ff4fa7b2c18ba305e38a33.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java架构师
文章平均质量分 84
Java每日分享Java架构师知识
洛卡JAVA架构师
这个作者很懒,什么都没留下…
展开
-
我们身边有哪些数据库?
在日常生活中,我们可能没有察觉到经常使用的数据库系统。正式学习数据库之前,先带大家了解一下身边常见的数据库系统应用。在阅读以下内容时,读者可以先将:数据库看作一组相关的数据数据库管理系统(DBMS)看作管理和控制这组数据的软件数据库系统包括与数据库相互作用的应用程序、DBMS 和数据库在内的所有东西本章后面会对上述术语给出更加准确的定义。下面是生活中一些常见的数据库应用。超市购物我们在超市购买商品时,就是在访问一个数据库。结账时,收银员使用条形码阅读器扫描客户购买的每一件商品。这个条形码阅读器连原创 2022-06-11 20:12:24 · 972 阅读 · 1 评论 -
Spring注入内部Bean
我们将定义在 元素的 或 元素内部的 Bean,称为“内部 Bean”。setter 方式注入内部 Bean我们可以通过 setter 方式注入内部 Bean。此时,我们只需要在 标签下的 元素中,再次使用 元素对内部 Bean 进行定义,格式如下。1. <?xml version="1.0" encoding="UTF-8"?>2. 注意:内部 Bean 都是匿名的,不需要指定 id 和 name 的。即使制定了,IoC 容器也不会将它作为区分 Bean 的标识符,原创 2022-05-16 18:25:57 · 239 阅读 · 0 评论 -
Spring Bean属性注入
所谓 Bean 属性注入,简单点说就是将属性注入到 Bean 中的过程,而这属性既可以普通属性,也可以是一个对象(Bean)。Spring 主要通过以下 2 种方式实现属性注入:构造函数注入setter 注入(又称设值注入)构造函数注入我们可以通过 Bean 的带参构造函数,以实现 Bean 的属性注入。使用构造函数实现属性注入大致步骤如下:在 Bean 中添加一个有参构造函数,构造函数内的每一个参数代表一个需要注入的属性;在 Spring 的 XML 配置文件中,通过 及原创 2022-05-16 18:24:41 · 709 阅读 · 0 评论 -
第一个Spring程序
本节介绍如何使用 Eclipse IDE 创建一个简单的 Spring 程序。在编写之前,我们必须确保已经正确搭建了 Spring 开发环境,不了解的读者请转到:Spring开发环境搭建1. 创建 Java 项目在 Eclipse 中创建一个简单的 Java 项目,依次单击 File -> New -> Java Project,这里将项目名称设置为 HelloSpring。图1:创建 Java 项目2. 添加 jar 包这里我们需要在项目中添加 Spring 和 logg原创 2022-05-16 18:20:27 · 144 阅读 · 0 评论 -
Spring注入其他类型的属性
除了普通属性、对象属性(Bean)、集合等属性外,Spring 也能够将其他类型的属性注入到 Bean 中,例如 Null 值、字面量、复合物属性等。注入 Null 值我们可以在 XML 配置文件中,通过 元素将 Null 值注入到 Bean 中。下面,我们通过一个简单的实例,来演示下如何将 Null 值注入到 Bean 中。1. 参考《第一个 Spring 程序》,新建一个名为 my-spring-demo5 的 Java 项目。2. 在 net.biancheng.c 包中,创建一个名为 E原创 2022-05-16 18:28:22 · 252 阅读 · 0 评论 -
【spring入门到精通】Spring是什么
Spring 是 Java EE 编程领域的一款轻量级的开源框架,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,它的目标就是要简化 Java 企业级应用程序的开发难度和周期。Spring 自诞生以来备受青睐,一直被广大开发人员作为 Java 企业级应用程序开发的首选。时至今日,Spring 俨然成为了 Java EE 代名词,成为了构建 Java EE 应用的事实标准。Spring 的诞生与发展早期的 J2EE(Java EE 平台)推崇以 EJB 为核心的开发原创 2022-05-16 18:17:08 · 452 阅读 · 0 评论 -
Spring Bean定义
由 Spring IoC 容器管理的对象称为 Bean,Bean 根据 Spring 配置文件中的信息创建。我们可以把 Spring IoC 容器看作是一个大工厂,Bean 相当于工厂的产品。如果希望这个大工厂生产和管理 Bean,就需要告诉容器需要哪些 Bean,以哪种方式装配。Spring 配置文件支持两种格式,即 XML 文件格式和 Properties 文件格式。Properties 配置文件主要以 key-value 键值对的形式存在,只能赋值,不能进行其他操作,适用于简单的属性配置。X原创 2022-05-16 18:23:02 · 76 阅读 · 0 评论 -
Spring注入集合
我们还可以在 Bean 标签下的 元素中,使用以下元素配置 Java 集合类型的属性和参数,例如 List、Set、Map 以及 Properties 等。示例 1:在集合中设置普通类型的值下面我们通过一个实例,演示下如何注入集合类型的属性和参数。1. 参考《[第一个 Spring 程序]》,新建一个名为 my-spring-demo4 的 Java 项目。2. 在 net.biancheng.c 包下,创建一个名为 JavaCollection 的类,代码如下。1. package ne原创 2022-05-16 18:27:14 · 201 阅读 · 0 评论 -
Java工程师,入行或转行都是好选择~
Java是市场上占有率排名前三的编程语言,Java作为企业级应用开发的首选,不仅在很多企业得到应用,也深受互联网大厂的青睐。学习Java,就是为了更好地开发应用,不论是开发Web应用,还是开发中间件,亦或是微服务,都是Java语言所擅长的,加上Java生态的丰富多彩,对于企业级应用的全方位支持,使用Java的开发大型应用的成本相对还是比较低的。不难发现,在互联网+的影响下,这几年,中国的互联网行业进入了高速发展的阶段,同时IT行业,也成为了热门,备受追捧和关注的行业。在全球云计算和移动互联网的...原创 2022-05-15 15:16:00 · 158 阅读 · 0 评论 -
【spring入门到精通】Spring体系结构
Spring 框架基本涵盖了企业级应用开发的各个方面,它包含了 20 多个不同的模块。spring-aop spring-context-indexer spring-instrument spring-orm spring-webspring-aspects spring-context-support spring-jcl spring-oxm spring-webfluxspring-beans spring-core原创 2022-05-16 18:18:09 · 62 阅读 · 0 评论 -
Spring IoC(控制反转)
IoC 是 Inversion of Control 的简写,译为“控制反转”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。Spring 通过 IoC 容器来管理所有 Java 对象的实例化和初始化,控制对象与对象之间的依赖关系。我们将由 IoC 容器管理的 Java 对象称为 Spring Bean,它与使用关键字 new 创建的 Java 对象没有任何区别。IoC 容器是 Spring 框架中最重要的核心组件之一,它贯穿了 Spring原创 2022-05-16 18:21:37 · 109 阅读 · 0 评论 -
Spring MVC入门到精通MVC设计模式简介
MVC 设计模式一般指 MVC 框架,M(Model)指数据模型层,V(View)指视图层,C(Controller)指控制层。使用 MVC 的目的是将 M 和 V 的实现代码分离,使同一个程序可以有不同的表现形式。其中,View 的定义比较清晰,就是用户界面。在 Web 项目的开发中,能够及时、正确地响应用户的请求是非常重要的。用户在网页上单击一个 URL 路径,这对 Web 服务器来说,相当于用户发送了一个请求。而获取请求后如何解析用户的输入,并执行相关处理逻辑,最终跳转至正确的页面显示反馈结果,这些原创 2022-05-19 11:31:47 · 145 阅读 · 0 评论 -
Spring事务(Transaction)
事务(Transaction)是基于关系型数据库(RDBMS)的企业应用的重要组成部分。在软件开发领域,事务扮演者十分重要的角色,用来确保应用程序数据的完整性和一致性。事务具有 4 个特性:原子性、一致性、隔离性和持久性,简称为 ACID 特性。原子性(Atomicity):一个事务是一个不可分割的工作单位,事务中包括的动作要么都做要么都不做。一致性(Consistency):事务必须保证数据库从一个一致性状态变到另一个一致性状态,一致性和原子性是密切相关的。隔离性(Isolation):一个事务的原创 2022-05-19 11:22:25 · 12595 阅读 · 0 评论 -
Spring自动装配(基于注解)
从 Java 5 开始,Java 增加了对注解(Annotation)的支持,它是代码中的一种特殊标记,可以在编译、类加载和运行时被读取,执行相应的处理。开发人员可以通过注解在不改变原有代码和逻辑的情况下,在源代码中嵌入补充信息。Spring 从 2.5 版本开始提供了对注解技术的全面支持,我们可以使用注解来实现自动装配,简化 Spring 的 XML 配置。Spring 通过注解实现自动装配的步骤如下:引入依赖开启组件扫描使用注解定义 Bean依赖注入引入依赖使用注解的第一步,就是要在原创 2022-05-18 19:25:33 · 1487 阅读 · 0 评论 -
Spring SpEL表达式语言
Spring Expression Language(简称 SpEL)是一种功能强大的表达式语言,支持运行时查询和操作对象图 。表达式语言一般是用最简单的形式完成最主要的工作,以此减少工作量。Java 有许多可用的表达式语言,例如 JSP EL,OGNL,MVEL 和 JBoss EL,SpEL 语法类似于 JSP EL,功能类似于 Struts2 中的 OGNL,能在运行时构建复杂表达式、存取对象图属性、调用对象方法等,并且能与 Spring 功能完美整合,如 SpEL 可以用来配置 Bean 定义。原创 2022-05-19 11:27:25 · 244 阅读 · 0 评论 -
AOP面向切面编程
除了控制反转(IoC)和依赖注入(DI)外,Spring 框架还提供了对面向切面编程(AOP)的支持。本节,我们就对 AOP 面向切面编程进行讲解。AOP 的全称是“Aspect Oriented Programming”,译为“面向切面编程”,和 OOP(面向对象编程)类似,它也是一种编程思想。通常情况下,我们会根据业务使用 OOP(面向对象)思想,将应用划分为多个不同的业务模块,每个模块的核心功能都只为特定的业务领域提供服务,例如电商系统中的订单模块、商品模块、库存模块就分别是为维护电商系统的订单原创 2022-05-18 19:29:14 · 121 阅读 · 0 评论 -
第一个Spring MVC程序
本节通过一个简单的 Web 应用 springmvcDemo 来演示如何创建 Spring MVC 程序。搭建步骤如下:创建 Web 应用并引入 JAR 包,本教程 Spring 使用版本为 5.2.3Spring MVC 配置:在 web.xml 中配置 Servlet,创建 Spring MVC 的配置文件创建 Controller(处理请求的控制器)创建 View(本教程使用 JSP 作为视图)部署运行创建Web应用并引入JAR包创建 Web 应用 springmvcDemo,在 s原创 2022-05-19 11:34:31 · 202 阅读 · 0 评论 -
Spring整合日志框架Log4j2
对于一款软件而言,日志记录都是十分重要的。它不仅能够监控程序的运行情况,周期性的记录到文件中,还能够跟踪程序中代码的运行轨迹,向文件或控制台打印代码的调试信息。当程序出现错误时,日志记录可以帮助开发人员及时定位问题,因此对开发人员来说,日志记录更是尤为重要。Spring 5 框架自带了通用的日志封装,但是我们依然可以整合其他的日志框架对日志进行记录,其中最广为人知的就是大名鼎鼎的 Log4j。Log4j 是 Apache 提供的一款开源的强有力的 Java 日志记录工具。它可以通过配置文件灵活、细致地控原创 2022-05-19 11:26:37 · 1371 阅读 · 0 评论 -
Spring MVC和Struts2的区别
Spring MVC 和 Struts2 类似,是一款基于传统 MVC 设计模式的 Java EE 框架。它的核心是一个弹性的控制层,能够很好地发挥 MVC 模式的“分离显示逻辑和业务逻辑”的能力。而近年来越来越多的开发者选择使用 Spring MVC 技术来代替 Struts2 技术,那么相比于 Struts2 框架,Spring MVC 的优点在哪里呢?下面来分析一下两者的区别。Spring MVC 基于方法开发,Struts2 基于类开发。在使用 Spring MVC 框架进行开发时,会将原创 2022-05-19 11:35:09 · 207 阅读 · 1 评论 -
Spring使用AspectJ进行AOP开发(基于注解)
在 Spring 中,虽然我们可以使用 XML 配置文件可以实现 AOP 开发,但如果所有的配置都集中在 XML 配置文件中,就势必会造成 XML 配置文件过于臃肿,从而给维护和升级带来一定困难。为此,AspectJ 框架为 AOP 开发提供了一套 @AspectJ 注解。它允许我们直接在 Java 类中通过注解的方式对切面(Aspect)、切入点(Pointcut)和增强(Advice)进行定义,Spring 框架可以根据这些注解生成 AOP 代理。关于注解的介绍如表 1 所示。启用 @Aspec原创 2022-05-18 19:35:47 · 626 阅读 · 0 评论 -
Spring基于注解实现事务管理
在《Spring基于XML实现事务管理》一节中,我们通过 tx:advice 元素极大的简化了 Spring 声明式事务所需的 XML 配置。但其实我们还可以通过另一种方式进行进一步的简化,那就是“使用注解实现事务管理”。在 Spring 中,声明式事务除了可以使用 XML 实现外,还可以使用注解实现,以进一步降低代码之间的耦合度。下面我们就来介绍下,通过注解是如何实现声明式事务管理。开启注解事务tx 命名空间提供了一个 tx:annotation-driven 元素,用来开启注解事务,简化 Spr原创 2022-05-19 11:25:05 · 1423 阅读 · 0 评论 -
Spring自动装配
我们把 Spring 在 Bean 与 Bean 之间建立依赖关系的行为称为“装配”。Spring 的 IOC 容器虽然功能强大,但它本身不过只是一个空壳而已,它自己并不能独自完成装配工作。需要我们主动将 Bean 放进去,并告诉它 Bean 和 Bean 之间的依赖关系,它才能按照我们的要求完成装配工作。在前面的学习中,我们都是在 XML 配置中通过 和 中的 ref 属性,手动维护 Bean 与 Bean 之间的依赖关系的。例如,一个部门(Dept)可以有多个员工(Employee),而一个员工原创 2022-05-18 19:23:41 · 308 阅读 · 0 评论 -
Spring集成AspectJ
我们知道,Spring AOP 是一个简化版的 AOP 实现,并没有提供完整版的 AOP 功能。通常情况下,Spring AOP 是能够满足我们日常开发过程中的大多数场景的,但在某些情况下,我们可能需要使用 Spring AOP 范围外的某些 AOP 功能。例如 Spring AOP 仅支持执行公共(public)非静态方法的调用作为连接点,如果我们需要向受保护的(protected)或私有的(private)的方法进行增强,此时就需要使用功能更加全面的 AOP 框架来实现,其中使用最多的就是 Aspec原创 2022-05-18 19:32:58 · 384 阅读 · 0 评论 -
Spring使用AspectJ进行AOP开发(基于XML)
我们可以在 Spring 项目中通过 XML 配置,对切面(Aspect 或 Advisor)、切点(PointCut)以及通知(Advice)进行定义和管理,以实现基于 AspectJ 的 AOP 开发。Spring 提供了基于 XML 的 AOP 支持,并提供了一个名为“aop”的命名空间,该命名空间提供了一个 aop:config 元素。在 Spring 配置中,所有的切面信息(切面、切点、通知)都必须定义在 aop:config 元素中;在 Spring 配置中,可以使用多个 aop:conf原创 2022-05-18 19:33:51 · 420 阅读 · 0 评论 -
Spring JdbcTemplate(使用详解)
我们知道,JDBC 是 Java 提供的一种用于执行 SQL 语句的 API,可以对多种关系型数据库(例如 MySQL、Oracle 等)进行访问。但在实际的企业级应用开发中,却很少有人直接使用原生的 JDBC API 进行开发,这是因为使用 JDBC API 对数据库进行操作十分繁琐,需要我们对每一步都做到“步步把控,处处关心”,例如我们需要手动控制数据库连接的开启,异常处理、事务处理、最后还要手动关闭连接释放资源等等。Spring 提供了一个 Spring JDBC 模块,它对 JDBC API 进原创 2022-05-19 11:19:16 · 5378 阅读 · 0 评论 -
Spring MVC是什么
Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。Spring MVC 是结构最清晰的 Servlet+JSP+JavaBean 的实现,是一个典型的教科书式的 MVC 构架,不像 Struts 等其它框架都是变种或者不是完全基于 MVC 系统的框架。Spring MVC 角色划分清晰,分工明细,并且和 Spring 框架无缝结合。Spring MVC 是当今业界最主流的 Web 开发框架,以及最热门的开发技能。在 Spr原创 2022-05-19 11:32:20 · 101 阅读 · 0 评论 -
Spring Bean作用域
默认情况下,所有的 Spring Bean 都是单例的,也就是说在整个 Spring 应用中, Bean 的实例只有一个。我们可以在 元素中添加 scope 属性来配置 Spring Bean 的作用范围。例如,如果每次获取 Bean 时,都需要一个新的 Bean 实例,那么应该将 Bean 的 scope 属性定义为 prototype,如果 Spring 需要每次都返回一个相同的 Bean 实例,则应将 Bean 的 scope 属性定义为 singleton。Spring 5 共提供了 6 种原创 2022-05-16 18:29:34 · 120 阅读 · 0 评论 -
Spring Bean继承
在 Spring 中,Bean 和 Bean 之间也存在继承关系。我们将被继承的 Bean 称为父 Bean,将继承父 Bean 配置信息的 Bean 称为子 Bean。Spring Bean 的定义中可以包含很多配置信息,例如构造方法参数、属性值。子 Bean 既可以继承父 Bean 的配置数据,也可以根据需要重写或添加属于自己的配置信息。在 Spring XML 配置中,我们通过子 Bean 的 parent 属性来指定需要继承的父 Bean,配置格式如下。1. 2. 3. 4.原创 2022-05-18 19:22:02 · 761 阅读 · 0 评论 -
Spring基于XML实现事务管理
Spring 声明式事务管理是通过 AOP 实现的,其本质是对方法前后进行拦截,然后在目标方法开始之前创建(或加入)一个事务,在执行完目标方法后,根据执行情况提交或者回滚事务。声明式事务最大的优点就是对业务代码的侵入性低,可以将业务代码和事务管理代码很好地进行解耦。Spring 实现声明式事务管理主要有 2 种方式:基于 XML 方式的声明式事务管理。通过 Annotation 注解方式的事务管理。下面介绍如何通过 XML 的方式实现声明式事务管理,步骤如下。引入 tx 命名空间Spring原创 2022-05-19 11:23:54 · 671 阅读 · 0 评论 -
Spring AOP编程(十分详细)
Spring AOP 是 Spring 框架的核心模块之一,它使用纯 Java 实现,因此不需要专门的编译过程和类加载器,可以在程序运行期通过代理方式向目标类织入增强代码。Spring AOP 的代理机制Spring 在运行期会为目标对象生成一个动态代理对象,并在代理对象中实现对目标对象的增强。Spring AOP 的底层是通过以下 2 种动态代理机制,为目标对象(Target Bean)执行横向织入的。注意:由于被标记为 final 的方法是无法进行覆盖的,因此这类方法不管是通过 JDK 动态代原创 2022-05-18 19:31:12 · 385 阅读 · 0 评论 -
Spring后置处理器(BeanPostProcessor)
本节主要介绍在《[Spring Bean生命周期]》一节提到的 BeanPostProcessor 接口。BeanPostProcessor 接口也被称为后置处理器,通过该接口可以自定义调用初始化前后执行的操作方法。BeanPostProcessor 接口源码如下:1. public interface BeanPostProcessor {2. Object postProcessBeforeInitialization(Object bean, String beanNam原创 2022-05-18 19:21:19 · 713 阅读 · 0 评论