- 博客(28)
- 收藏
- 关注
原创 03.Spring Boot与任务
1、整章思维导图https://gitmind.cn/app/doc/68010089992、异步任务概述 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在Spring 3.x之后,就已经内置了@Async来完美解决这个问题核心注解注解说明@EnableAsync开启基于注解的异步任务支持@Async标注为异步方法无
2020-12-13 15:28:09
179
原创 02.Spring Boot与消息
1、整章思维导图https://gitmind.cn/app/doc/fa18316302、概述概述:大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力消息服务中两个重要概念:消息代理(message broker)和目的地(destination)当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地消息队列主要有两种形式的目的地1)队列(queue):点对点消息通信(point-to-point)2)主题(topic):发布(publish
2020-12-13 15:23:24
384
1
原创 01.Spring Boot与缓存
一、Spring Boot与缓存1、整章思维导图https://gitmind.cn/app/doc/9717988912、JSR107 缓存规范Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry 和 Expiry。CachingProvider 定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期访问多个CachingProviderCacheManager 定义了创建、配置
2020-11-30 16:47:34
200
原创 10.Mybatis注解开发
MyBatis 的常用注解说明注解作用@Insert实现新增@Update实现更新@Delete实现删除@Selec t实现查询@Resul t实现结果集封装@Results可以与@Result 一起使用,封装多个结果集@ResultMap实现引用@Results 定义的封装@One实实现一对一结果集封装@Many实现一对多结果集封装@SelectProvider实现动态 SQL 映射@CacheNames
2020-11-16 13:10:22
158
原创 09.Mybatis延迟加载策略、缓存
Mybatis 延迟加载策略延迟加载策略说明解释: 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载好处: 先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快坏处: 因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗时间,所以可能造成用户等待时间变长,造成用户体验下降需求: 查询账户(Account)信息并且关联查询用户(User)信息。如果先查询账户(Acc
2020-11-16 10:17:22
61
原创 08.Mybatis多表查询
一对一(多对一)需求: 查询所有账户信息,关联查询下单用户信息注意: 因为一个账户信息只能供某个用户使用,所以从查询账户信息出发关联查询用户信息为一对一查询。如 果从用户信息出发查询用户下的账户信息则为一对多查询,因为一个用户可以有多个账户用户为User 表,账户为Account 表。一个用户(User)可以有多个账户(Account),模型如下方式一 (继承的方式)定义账户信息的实体类 @Date public class Account implements Serial
2020-11-15 20:12:09
59
原创 07.Mybatis动态 SQL 语句
动态 SQL 语句的作用Mybatis 的映射文件中,前面我们的 SQL 都是比较简单的,有些时候业务逻辑复杂时,我们的 SQL 是动态变化的,此时在前面的学习中我们的 SQL 就不能满足要求了这篇文章参考了这篇文章MyBatis的动态SQL详解-各种标签使用< if >标签作用: 我们根据实体类的不同取值,使用不同的 SQL 语句来进行查询。比如在 id 如果不为空时可以根据 id 查询, 如果 username 不同空时还要加入用户名作为条件。这种情况在我们的多条件组合查询
2020-11-15 19:06:51
66
原创 06.Mybatis连接池与事务
Mybatis 的连接池技术Mybatis 连接池的分类UNPOOLED 不使用连接池的数据源POOLED 使用连接池的数据源JNDI 使用 JNDI 实现的数据源说明PooledDataSource 和 UnPooledDataSource 都实现了 java.sql.DataSourcePooledDataSource 持有一个 UnPooledDataSource 的引用当 PooledDataSource 需要创建 java
2020-11-15 13:25:42
75
原创 02.SqlMapConfig.xml配置文件
SqlMapConfig.xml 中配置的内容和顺序< properties >属性标签(两种方式)第一种 <properties> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///mybatis?serverTimezone=UTC"/> <
2020-11-15 11:14:53
132
原创 05.Mybatis传统 DAO 层开发[了解]
说明使用 Mybatis 开发 Dao,通常有两个方法,即原始 Dao 开发方式和 Mapper 接口代理开发方式,而现在主流的开发方式是接口代理开发方式,这种方式总体上更加简便实现 DAO 的传统开发方式持久层 Dao 接口public interface IUserDao { // 查询所有用户 List<User> findAll(); // 保存用户 void saveUser(User user); // 更新用户 v
2020-11-15 10:35:13
60
原创 04.MyBatis输入参数配置、输出结果的封装
输入参数配置parameterType 配置参数使用说明: parameterType的取值可以是基本类型,引用类型(String),实体类类型,包装类注意事项:基本类型和String可以直接写类型名称,也可以使用包名.类名的方式,例如:java.lang.String实体类类型,如果不起别名(在后面有介绍)就只能写全限定类名MyBatis支持的默认别名传递 pojo 包装对象开发中通过 pojo 传递查询条件,查询条件是综合的查询条件,不仅包括用户查询条件还包括其它的查询
2020-11-15 10:21:09
101
原创 03.MyBatis基于代理 Dao 实现 CRUD 操作
前提要求持久层接口和持久层的映射配置必须在相同的包下(目录相同)持久层映射配置中 mapper 标签的 namespace 属性取值必须是持久层接口的全限定类名(我的理解:当方法名相同时,用了做映射依据)SQL 语句的配置标签< select >,< insert >,< delete >,< update >的 id 属性必须和持久层接口的方法名相同实体类@Datapublic class User implements Serializab
2020-11-14 22:38:06
57
原创 01.MyBatis概述及入门案例
MyBatis框架概述mybatis是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身, 而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程mybatis通过 xml 或注解的方式将要执行的各种statement配置起来,并通过java对象和statement 中 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回采用 ORM 思想解决
2020-11-11 20:11:25
79
原创 02.Spring 整合 Junit
问题在测试类中,每个测试方法都有以下两行代码: ApplicationContext ac = new ClassPathXmlApplicationContext(“bean.xml”); IAccountService as = ac.getBean(“accountService”,IAccountService.class);这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常。所以又不能轻易删掉解决思路分析针对上述问题,我们需要的是程序能自动帮我们创建容器。一旦程序
2020-11-11 16:16:29
102
1
原创 01.基于XML Spring--IOC
Spring概述Spring的概念: Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control: 反转控制) 和 AOP(Aspect Oriented Programming:面向切面编程) 为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多 著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架Spring的
2020-11-10 22:44:17
100
原创 07.Spring、SpringMVC、MyBatis整合
思路想配置Spring框架,再通过Spring框架去分别整合SpringMVC和MyBatis,分别测试是否成功,成功后再整合下一个最终的文件结构需要的依赖坐标 <properties> <spring.version>5.0.2.RELEASE</spring.version> <slf4j.version>1.6.6</slf4j.version> <log4j.ver
2020-11-10 18:14:00
93
原创 06.SpringMVC自定义异常处理、拦截器
SpringMVC异常处理原理解析:系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息, 后者主要通过规范代码开发、测试通过手段减少运行时异常的发生系统的 dao、service、controller 出现都通过 throws Exception 向上抛出,最后由 springmvc 前端 控制器交由异常处理器进行异常处理实现步骤自定义异常// 一定要继承Exception public class SysExcep
2020-11-09 11:21:39
145
原创 05.SpringMVC的文件上传(Servlet上传、SpringMVC上传、跨域上传)
需要的依赖 <!--文件上传依赖--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dep
2020-11-09 10:53:56
221
1
原创 04.SpringMVC的响应数据和结果视图
返回值分类字符串指定逻辑视图名,通过视图解析器解析为物理地址 //指定逻辑视图名,经过视图解析器解析为 jsp 物理路径:/WEB-INF/pages/success.jsp @RequestMapping(path="/hello") public String sayHello(){ System.out.println("Hello SpringMVC!"); return "success"; }无返回值(void)
2020-11-09 09:37:01
103
原创 03.SpringMVC的常用注解、绑定、转换器、过滤器
SpringMVC的常用注解@RequestMapping :作用:实现访问路径的控制跳转作用在类上,为一级访问目录,作用在方法上,为二级访问目录例子:在类上@RequestMapping("/test"),在方法上@RequestMapping("/hello"),那么访问路径就是/test/hello细节:若在类上加了,那么方法上的路径名称前一定要加/进行分割,其他情况可以不加,但一般来说加上属性: path:指定请求的url value:和path属性一样 method:指
2020-11-07 00:43:26
121
原创 02.SpringMVC的入门案例及分析
SpringMVC的入门案例配置核心控制器(配置DispatcherServlet) <!--配置Spring MVC的核心控制器--> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
2020-11-06 12:50:02
112
原创 01.SpringMVC的基本概念
三层架构(基于 B/S架构)表现层: 也就是我们常说的web层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求 web 层,web 需要接收 http 请求,完成 http 响应。表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。表现层的设计一般都使用 MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系)业务层: 也就是我们常说的 service 层。它负
2020-11-06 11:19:17
111
原创 06.Spring框架的事务控制
Spring事务控制说明Java EE体系进行分层开发,事务处理处于业务层,Spring提供了分层设计业务层的事务解决方案Spring框架为我们提供了一组事务的控制接口,具体在下面介绍Spring的事务控制都是基于AOP的,他可以通过编程方式实现,也可以通过配置方式实现(声明式),现在常用配置的方式实现事务的管理Spring事务控制的APIPlatformTransactionManager接口获取事务状态信息: TranscationStatus getTransaction(Tr
2020-11-06 10:47:10
122
原创 05.Spring框架的JdbcTemplate
JdbcTemplate简介JdbcTemplate是Spring框架中的一个对象,其对原始的Jdbc API对象做了简单的封装,处理了资源的建立和释放,开发者只需提供sql语句及提取结果即可JdbcTemplate提供了默认构造函数、DataSource参数的有参构造函数、set方法JdbcTemplate配置相关依赖 <dependency> <groupId>org.springframework</groupId>
2020-11-04 19:49:18
113
原创 JAVA--AOP(面向切面编程)
AOP的相关概念概述: 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。----百度百科作用(我的理解):就是把程序中重复的代码抽离出来,通过动态
2020-11-02 16:11:19
943
原创 JAVA--动态代理(基于jdk)
代理模式的理解官方概念:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用-----《百度百科》我的理解:代理就是帮别人做事情,就比如生活中的留学中介、厂家代理等等留学中介(代理):帮助学校去招生,这就是这个学校的代理,功能就是帮助这个学校完成招生工作代理的特点:1. 中介和代理做的东西(功能)的一样的,就是招生2. 中介是学校的代理,而学校则是目标3. 学生/家长----------中介(
2020-10-19 10:23:20
190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人