4.Spring之FactoryBean
[toc]
1.通过工厂创建bean1.1 静态工厂
调用静态工厂方法创建bean是将对象创建的过程封装到静态方法中。当客户端需要对象时,只需要简单地调用静态方法,而不用关心创建对象的细节。
声明通过静态方法创建的bean需要在bean的class属性里指定静态工厂类的全类名,同时在factory-method属性里指定工厂方法的名称。最后使用<constrctor-arg>元素为该方法传递方法参数。
1.2 实例工厂
实例工厂方法:
将对象的创建过程封装到另外一个对象实例的方法里。当客户端需要请求对象时,只需要简单的调用该实例方法而不需要关心对象的创建细节。
实现方式
①配置工厂类实例的bean
②在factory-method属性里指定该工厂方法的名称
③使用 construtor-arg 元素为工厂方法传递方法参数
2. FactoryBean
Spring中有两种类型的bean,一种是普通bean,另一种是工厂bean,即FactoryBean。使用场景:对一些对象想让spring去管理,但是又不希望spring默认去创建,就可以使用 ...
3.Spring中Bean的配置
[toc]
1. bean的属性赋值1.1 依赖注入的方式1. 1.1 通过bean的setXxx()方法赋值123456<bean id="student" class="cn.justweb.pojo.Student"> <!--使用property子元素为bean的属性赋值--> <property name="name" value="涛哥"></property> <property name="sex" value="男"></property> <property name="address" value="南京"></property></bean>
1.1.2 通过bean的构造器赋值Spring自动匹配合适的构造器
123456<!--注意这个Student要存在带参数的 ...
2.SpringIOC容器
[toc]
1. Spring IOC容器1.1 IOC和DI
IOC(Inversion of Control):反转控制
DI(Dependency Injection):依赖注入
IOC 就是一种反转控制的思想, 而DI是对IOC的一种具体实现。
1.1.1 IOC(Inversion of Control):反转控制
即控制权的转移,将我们创建对象的方式反转了,以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入。使用了spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入,反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序创建(spring)
1.1.2 DI(Dependency Injection):依赖注入
spring这个容器中,替你管理着一系列的类,前提是你需要将这些类交给spring容器进行管理,然后在你需要的时候,不是自己去定义,而是直接向spring容器索取,当spring容器知道你的需求之后,就会去它所管理的组件中进行查找,然后直接给你所需要的组件.
1.1.3 IOC容器在Spring中的实现
前 ...
1.Spring概述
[toc]
1. Spring概述
Spring 官网 https://spring.io/
Spring是一个IOC(DI)和AOP容器框架。
Spring是一个开源框架
Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。
注: EJB即Enterprise JavaBean,是SUN的JavaEE服务器端组件模型。在JavaEE里,EJB称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(**MessageDriven Bean**)。在EJB3.0推出以后,实体Bean被单独分了出来,形成了新的规范JPA。
Spring的优良特性
非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API
依赖注入:DI——Dependency Injection,反转控制(IOC)最经典 ...
16.Spring之声明式事务管理
[toc]
[toc]
Spring事务管理1. Spring事务管理概述1.1 编程式事务管理
使用原生的JDBC API实现事务管理是所有事务管理方式的基石,同时也是最典型的编程式事务管理。编程式事务管理需要将事务管理代码嵌入到业务方法中来控制事务的提交和回滚。在使用编程的方式管理事务时,必须在每个事务操作中包含额外的事务管理代码。相对于核心业务而言,事务管理的代码显然属于非核心业务,如果多个模块都使用同样模式的代码进行事务管理,显然会造成较大程度的代码冗余。
12345678910111213141516/** * * 编程式事务: * TransactionFilter{ * try{ * // 获取连接 * // 设置非自动提交 * chain.doFiler(); * //提交 * }catch(){ * //异常回滚 * }finally{ * //释放资源 * } ...
Mysql
Mysql免安装版的Mysql MySQL关是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用的
标准化语言,其特点为体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,在 Web
应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据
库管理系统)应用软件之一。
在本博文里,我主要以Mysql免安装版为例,帮助大家解决安装与配置mysql的步骤。
首先:要先进入mysql官网里(Mysql的官网–>https://www.mysql.com/),下面是详细步骤:↓
(为了方便大家的操作,我的网盘里有安装包:
链接:https://pan.baidu.com/s/1hq0rrtdXm2g7FqwaBKxgWg 提取码:wsh6 )
一、下载安装包: ①进入官网后,点击”Dowload”,然后页面往下拉
②接下来看到的页面是这样的,红色框框的链接就是mysql社区版,是免费的mysql版本,然后我们点击这个框框的链接:↓
③接下 ...
00.数据结构和算法概述
1. 数据结构概述
数据 data 结构(structure)是一门 研究组织数据方式的学科,有了编程语言也就有了数据结构.学好数据结构可以编写出更加漂亮,更加有效率的代码。
要学习好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决
程序 = 数据结构 + 算法
数据结构是算法的基础, 换言之,想要学好算法,需要把数据结构学到位
2. 数据结构包括
线性结构和非线性结构。
2.1 线性结构
线性结构作为最常用的数据结构,其特点是 数据元素之间存在一对一的线性关系
线性结构有两种不同的存储结构,即 **顺序存储结构( 数组)**和 **链式存储结构( 链表)**。
顺序存储的线性表称为顺序表,顺序表中的 存储元素是连续的
链式存储的线性表称为链表,链表中的 存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息
线性结构常见的有: 数组、队列、链表和栈,后面我们会详细讲解.
2.2非线性结构非线性结构包括:二维数组,多维数组,广义表, 树结构,图结构
00.JDBC
JDBC
DriverManager 类管理和注册数据库驱动,得到数据库连接对象。
Connection 接口一个连接对象,可用于创建 Statement 和 PreparedStatement 对象。
Statement 接口一个 SQL 语句对象,用于将 SQL 语句发送给数据库服务器。
PreparedStatemen 接口一个 SQL 语句对象,是 Statement 的子接口。
ResultSet 接口用于封装数据库查询的结果集,返回给客户端 Java 程序。
1234567891011121314151617181920212223242526272829/** * DDL create alter drop 增 改 删 */public class Demo01JDBC { public static void main(String[] args) throws Exception{ //1.导入扎包 //2.注册驱动 Class.forName("com.mysql.jdbc.Dri ...
1.Java的历史和演变
花自飘零水自流。一种相思,两处闲愁。
——李清照《一剪梅》
[TOC]
Java的历史和演变1. 计算机语言的历史
第一代语言:机器语言
主要编写二进制码,直接编写100101010101这样的二进制,以打孔机为代表。
第二代语言: 低级语言
主要以汇编语言为代表
在低级语言当中已经引入了一些英语单词。
第三代语言:高级语言
列如:c语言 c++ Java、…..
1.1 C语言之前的高级语言
FORTRAN -1957 , 第一种被广泛使用的高级语言,高效的汇编语言。
BASIC -1964 ,易学习,功能弱。
COBOL -1959
Pascal -1970 ,第一个结构化程序语言。
C语言之前的这些版本,程序员通常需要在品质不同的各种计算机语言之间进行选择。BASIC,COBOL,FORTRAN,没有遵循结构化设计原则,依赖与GOTO作为程序控制的主要手段,很 ...
01.MyBatisPlus简介
MyBatisPlus简介
官网:http://mp.baomidou.com/
参考教程:http://mp.baomidou.com/guide/
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
MybatisPlus特性
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLSer ...