Spring-BASE-6

Spring 框架基础6

转载:https://blog.csdn.net/qq_35843514/article/details/114287046?spm=1001.2014.3001.5501

一、什么是事务?

1、事务的定义

(1)事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都失败。
(2)案例分析

如上述例子,Micah给Maruko转账,只有在转账成功的情况下,Micah的账户余额才会减少,Maruko的账户余额增加,不存在Micah账户的余额减少了,而Maruko的账户余额却不变。要么转账成功,2边余额都改变;要么转账失败,2边余额都保持不变。

2、事务的四大特性

原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。
一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。
隔离性(Isolation):可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离开来,防止数据损坏。
持久性(Durability):一旦事务完成,无论发生什么系统错误,它的结果都不应该受到影响,这样就能从任何系统崩溃中恢复过来。通常情况下,事务的结果被写到持久化存储器中。

Spring-BASE-5

Spring 框架基础5

转载:https://blog.csdn.net/qq_35843514/article/details/114287046?spm=1001.2014.3001.5501

一、Spring JDBC概述

1、什么是JDBC Template?

之前我们采用的是手动封装JdbcTemplate,其好处是通过(sql语句+参数)模板化了编程。而真正的JdbcTemplate类,是Spring框架为我们写好的。它是 Spring 框架中提供的一个对象,是对原始 Jdbc API 对象的简单封装。除了JdbcTemplate,Spring 框架还为我们提供了很多的操作模板类。

操作关系型数据的:JdbcTemplate和HibernateTemplate。
操作 nosql 数据库的:RedisTemplate。
操作消息队列的:JmsTemplate。

2、Spring JDBC 能做什么?

操作项目 Spring帮你做的 你需要做的
定义连接参数
打开连接
指定SQL语句
声明参数并提供参数值
准备并运行该语句
设置循环以遍历结果(如果有)
进行每次迭代的工作
处理任何异常
处理交易
关闭连接,语句和结果集

Spring-BASE-4

Spring 框架基础4

转载:https://blog.csdn.net/qq_35843514/article/details/114287046?spm=1001.2014.3001.5501

一、什么是AOP?

1、AOP

AOP(Aspect Oriented Programming),即面向切面编程,是OOP的补充,它也提供了模块化。在面向对象编程中,关键的单元是对象,AOP的关键单元是切面,或者说关注点(可以简单地理解为你程序中的独立模块)。一些切面可能有集中的代码,但是有些可能被分散或者混杂在一起,例如日志或者事务。这些分散的切面被称为横切关注点。一个横切关注点是一个可以影响到整个应用的关注点,而且应该被尽量地集中到代码的一个地方,例如事务管理、权限、日志、安全等。

AOP让你可以使用简单可插拔的配置,在实际逻辑执行之前、之后或周围动态添加横切关注点。这让代码在当下和将来都变得易于维护。如果你是使用XML来使用切面的话,要添加或删除关注点,你不用重新编译完整的源代码,而仅仅需要修改配置文件就可以了。

总而言之,AOP就是使用不修改源代码的方式,在主干功能里添加新的功能。

Spring-BASE-3

Spring 框架基础3

转载:https://blog.csdn.net/qq_35843514/article/details/114287046?spm=1001.2014.3001.5501

一、概念与定义

1、什么是Spring beans?

Bean: 在Spring中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。Bean是由Spring IoC容器实例化,组装和以其他方式管理的对象。否则,bean仅仅是应用程序中许多对象之一。Bean及其之间的依赖关系反映在容器使用的配置元数据中。

Spring Beans是构成Spring应用核心的Java对象。这些对象由Spring IoC容器实例化、组装、管理。这些对象通过容器中配置的元数据创建,例如,使用XML文件中定义的创建。
在Spring中创建的beans都是单例的beans。在bean标签中有一个属性为”singleton”, 如果设为true,该bean是单例的,如果设为false,该bean是原型bean。Singleton属性默认设置为true。因此,spring框架中所有的bean都默认为单例bean。

Spring-BASE-1

Spring 框架基础1

转载:https://blog.csdn.net/qq_35843514/article/details/114287046?spm=1001.2014.3001.5501

一、什么是Spring?

1、什么是spring?(面试题)

Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展性。Spring框架的目标是使得Java EE应用程序的开发更加简捷,通过使用POJO为基础的编程模型促进良好的编程风格。

注:POJO和JavaBean的区别

(1)POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean 。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器。

(2)通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。 Java Bean 是不能被跨进程访问的。JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被拿去用,这个扳子也提供多种功能(你可以拿这个扳子扳、锤、撬等等),而这个扳子就是一个组件。一般在web应用程序中建立一个数据库的映射对象时,我们只能称它为POJO。POJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象,而不是一个特殊的对象,其主要用来指代那些没有遵从特定的Java对象模型、约定或框架(如EJB)的Java对象。理想地讲,一个POJO是一个不受任何限制的Java对象(除了Java语言规范)。

JAVA-Stack-1

一、栈

1、栈的介绍

1. 栈的英文为(stack) 
2. 栈是一个先入后出(FILO-FirstInLastOut)的有序列表。 
3. 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的      一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。 
4. 根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除 
5. 图解方式说明出栈(pop)和入栈(push)的概念------------------------------>

JAVA-Linked-List-1

链表

一、单向链表

1、基本介绍

1. 链表是有序的列表,但是他再内存中的存储如下 ----------->
2. 链表是以节点的方式来存储数据的,是链式存储
3. 每个节点包含data域(存数据) next域(存下一个节点的地址)
4. 链表中各个节点不一定是连续存储。(可以充分利用碎片内存)
5. 链表分为 带头节点链表 和 不带头节点链表,根据实际需求来确定

JAVA-Arrays-Queues-1

稀疏数组和队列

一、稀疏数组

1、稀疏数组实际需求

编写一个五子棋程序,有存盘退出和续上盘的功能。
分析问题:因为这个二维数组中很多的默认值都是0,因此记录了很多没有意义的数据,这时就可以用到稀疏数组

2、稀疏数组基本介绍

当一个数组中大部分元素都是0,或者都是同一个值的数组时,可以使用稀疏数组来保存该数组。

稀疏数组的处理方法是:

1. 稀疏数组的第一行是 记录数组一共有几行几列(这里不是索引,从1开始),有多少个不同的值
2. 把具有不同值得元素的行列及值记录在一个小规模的数组(稀疏数组)中,从而缩小程序的规模 --->
3. -------------------->原来的二维数组是42个值,使用稀疏数组后变成27个值(节省了很大空间)
4. 稀疏数组 永远是一个 行不确定(有效值的数量+1 = 真实行数),但是就三个列(行,列,值)的一个二维数组
5. 稀疏数组第二行及以下  都是存放原始二维数组中 有效值的坐标(行和列分别是 下标[索引])

JAVA-SE-1

多线程 & 反射 & 注解 & 网络编程 & 路径

一、多线程

1、概述

1.1 理解线程和进程

• 进程时一个应用程序(软件)
• 线程是一个进程的执行过程/执行场景
• 一个进程可以启动多个线程
|