JavaSE
文章平均质量分 75
jcsyl_mshot
点滴生活,水落石出。
展开
-
Mybatis(四)实践须知
Mybatis 不同类型sql 语句执行结果:Select:查询结果为空时,如果是基本类型返回值为默认的初始化值 ;类对象返回值为null;Map、List 等集合类对象返回值为new 空对象。Update/Delete:影响结果为空时,返回值为0;影响结果不为空时,返回值为影响条数。Mybatis xml文件中ResultMap 与 ResultType区别ResultTy...原创 2020-03-02 11:16:04 · 274 阅读 · 0 评论 -
ApplicationContextAware使用理解
问题背景在我们的web程序中,用spring来管理各个实例(bean), 有时在程序中为了使用已被实例化的bean, 通常会用到这样的代码:ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext-common.xml"); AbcService abcService = (...原创 2020-03-01 17:04:21 · 221 阅读 · 0 评论 -
SpringBoot 学习系列五(springboot中使用Servlet)
前言以前的java web项目,需要在web.xml中定义servlet,对应不同的请求,而在spring项目中,我们用controller定义了各种各样的servlet(当然不包括DispatcherServlet),那么controller是servlet吗?servlet的本质其实也是一个java bean,controller是对servlet的封装,底层依旧是servlet。web...原创 2019-10-28 15:23:20 · 792 阅读 · 0 评论 -
SpringBoot 学习系列四(SpringMVC中ContextLoaderListener)
Spring MVC 是建立在 IOC 容器基础上的,那么该容器是如何在 Web 环境中被载入并起作用的 ?通常我们需要配置一个监听器(ContextLoaderListener)。所谓ContextLoaderListener,就是在web部署描述符即web.xml里面经常配置的一个监听器,如下<listener> <listener-class>org....原创 2020-02-24 13:24:59 · 2009 阅读 · 0 评论 -
SpringBoot 学习系列一(Servlet、Tomcat、JSP)
1.servlet的工作过程以及容器的作用Web服务器习惯处理静态页面,所以需要一个程序来帮忙处理动态请求(如当前时间)。Web服务器程序会将动态请求转发给帮助程序,帮助程序处理后,返回处理后的静态结果给web服务器程序。这样就避免了web服务器程序处理动态页面。Servlet 的本质是一个帮助程序。 什么是servlet? 早期的web应用主要用于浏览新闻等静态页面,用户通过HTTP协议...原创 2018-08-13 16:22:42 · 338 阅读 · 0 评论 -
请求日志拦截器
1.背景spring记录日志有两种,一种是通过AOP,另一种是通过拦截器interceptor;SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式:第一种方式是要定义的Interceptor类要实现了Spring 的HandlerInterceptor ...原创 2019-12-04 16:39:13 · 353 阅读 · 0 评论 -
AOP 实现分布式锁
在web项目开发过程中,经常会遇到分布式资源控制的场景,通过加锁从而保证资源访问的互斥性。本文主要介绍在没有redis情况下通过mysql进行分布式锁的实现。场景:线程A与线程B执行前需要判断资源R的状态,当R的状态为1时,则可以执行,当R的状态为0时,则不容许执行,且同一时刻只容许一个线程执行。线程执行时资源R状态置0,线程执行结束后R状态重新置1.上述场景中,若不对资源R进行互斥访问,则...原创 2019-12-03 15:26:19 · 780 阅读 · 0 评论 -
SpirngBoot 学习系列二(Spring容器和应用上下文)
容器的概念有了Spring之后,通过依赖注入的方式,我们的业务代码不用自己管理关联对象的生命周期。业务代码只需要按照业务本身的流程,走啊走啊,走到哪里,需要另外的对象来协助了,就给Spring说,我想要个对象——于是Spring就很贴心的给你个对象。Spring既然要负责应用程序中那么多对象的创建管理,就像苹果要生产那么多的手机(对象)一样,肯定有一个专门搞对象的地方。苹果生产手机的地方叫工厂...原创 2019-10-28 11:55:25 · 228 阅读 · 0 评论 -
java 注解
注解分类一、运行机制划分:源码注解编译时注解 (只在编译器时起作用)运行时注解(运行阶段起作用,影响运行逻辑,例如@Autowired)二、按照来源划分:jdk自带注解@Override@Depreted@SuppressWarning(“deprecation”)自定义注解java第三方注解Spring注解SpringBoot注解自定义注解一、 实现使用@...原创 2019-10-23 16:18:27 · 345 阅读 · 0 评论 -
web开发需要知道的知识(四)四大对象域
Java web 四大作用域和九大对象四个作用域1.request域request是表示一个请求,只要发出一个请求就会创建一个request,它的作用域:仅在当前请求中有效。应用场景 : 常用于服务器间同一请求不同页面之间的参数传递,常应用于表单的控件值传递。2.session域服务器会为每个会话创建一个session对象,所以session中的数据可供当前会话中所有servlet...原创 2019-10-18 19:22:57 · 218 阅读 · 0 评论 -
Web 开发需要知道的知识(三)线程安全检测
1. 概述在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址、请求的url、header中的属性(如cookie、授权信息)、body中的数据等。由于在Spring MVC中,处理请求的Controller、Service等对象都是单例的,因此获取request对象时最需要注意的问题,便是request对象是否是线程安全的:当有大量并发...原创 2019-10-18 14:25:20 · 151 阅读 · 0 评论 -
service层设置interface
在JAVA web开发中,项目的service层可以设置interface,也可以不需要interface只有实现类。我们知道mapper层实现接口是问了通过反射实现代理对象。这让我产生了一个疑问,为什么service层需要定义interface,有什么好处和坏处。仔细追究之后,发现这个问题很有意思。1.有个接口,注入的时候可以注入到Service对象,没有你就要注入到ServiceImp对象。...原创 2019-07-27 17:40:51 · 1763 阅读 · 0 评论 -
Web服务器、Servlet服务器之间的关系
在本文中,我写了一些关于Web服务器、Servlet容器以及它与JVM的关系的基本概念。我想表达的是,Servlet容器也仅仅不过是一个Java程序。什么是Web服务器?想要知道什么是Servlet容器,我们首先要知道什么是Web服务器。Web服务器使用HTTP协议来传输数据。最简单的一种情况是,用户在浏览器(客户端,client)中输入一个URL(如,www.programcreek....转载 2019-07-27 14:45:40 · 693 阅读 · 0 评论 -
SpringBoot
1.常见的starter会包几个方面的内容?分别是什么?1) 常见的starter会包括下面四个方面的内容 自动配置文件,根据classpath是否存在指定的类来决定是否要执行该功能的自动配置。 spring.factories,非常重要,指导Spring Boot找到指定的自动配置文件。 endpoint:可以理解为一个admin,包含对服务的描述、界面、交互(业务信息的查询...原创 2018-08-22 09:35:54 · 301 阅读 · 0 评论 -
SpringMVC 实现数据绑定
SpringMVC 会根据请求方法签名不同,将请求消息的消息以一定的方式转换并绑定到请求的参数中。在请求消息到达真正处理方法之前的这一段时间内,SpringMVC需要完成请求消息转换,数据转换,格式化,数据校验等1.数据绑定流程SpringMVC 框架将ServletRequest 对象(HttpServletRequest 为其子类)以及处理方法的参数对象实例传递给DataBinder,...原创 2018-08-13 23:01:16 · 237 阅读 · 0 评论 -
SpringMVC 常用注解
1.@controller 注解 Controller 注解类型用于指定Spring类实例是一个控制器,被注解的类不需要继承特定的父类或则特定的接口,相对于实现接口变得更加简单。 分发处理器会扫描使用了该注解的类的方法,并检测是否使用了@RequestMapping 注解,而使用RequestMapping 注解的方法才是真正处理请求的处理器。 为了保证Spring能找到控制器,需要完成两件...原创 2018-08-13 20:37:07 · 195 阅读 · 0 评论 -
Java EE 应用
Java EE 应用的分层模型大都是经典的javaEE 的架构大致分为一下几层: Domain Object:领域对象层,由一系列的POJO(传统Java对象)组成DAO:数据库访问层,由一系列的DAO 组件组成,实现对数据库的创建,查询,更新等Service:业务逻辑层,由一系列业务逻辑对象组成Controller:控制器层,由一系列控制器组成,用户拦截用户请求,调用业务逻辑...原创 2018-08-13 15:49:07 · 180 阅读 · 0 评论 -
Spring 的bean 管理(配置文件方式)
bean 实例化方式在spring里面通过配置文件创建对象1 bean实例化三种方式实现 第一种 使用类的无参数构造创建(重点)(写了有参数的构造函数,默认没有无参构造函数,使用这种方式,必须重新再写一个)第二种 使用静态工厂创建 (1)创建静态的方法,返回类对象 《bean id=”bean2” class=’cn.itcast.bean.Bean2Factory” facto...原创 2018-05-20 16:41:36 · 428 阅读 · 0 评论 -
Spring 的bean管理(注解)
1.注解介绍:替代配置,实现对象的创建 1 代码里面特殊标记,使用注解可以完成功能2 注解写法 @注解名称(属性名称=属性值)3 注解使用在类上面,方法上面 和 属性上面2.Spring注解开发准备1 导入jar包 (1)导入基本的jar包 commons-logging-1.2.jar log4j-1.2.16.jar spring-beans-4.2...原创 2018-05-20 19:37:18 · 134 阅读 · 0 评论 -
Spring AOP
AOP 概念1 aop:面向切面(方面)编程,扩展功能不修改源代码实现2 AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码 纵向抽取机制:类似于装饰模式 横向抽取机制:动态代理模式 3 aop底层使用动态代理实现 (1)第一种情况,有接口情况,使用动态代理创建接口实现类代理对象(jdk动态代理) (2)第二种情况,没有接口情况,使用动态代理创建类的子类代理对象(...原创 2018-05-20 20:25:22 · 143 阅读 · 0 评论 -
Spring的jdbcTemplate
1 spring框架一站式框架 (1)针对javaee三层,每一层都有解决技术 表现层(web层):SpringMVC 业务逻辑层(service):IOC 数据访问层(DAO):jdbcTemplate2 spring对不同的持久化层技术都进行封装 (JDBC,Hibernate,Mybatis,JPA)3 jdbcTemplate使用和dbutils使用很相似,都数据库进行c...原创 2018-05-21 16:41:13 · 191 阅读 · 0 评论 -
Spring 事务管理
事务概念1 什么事务 一组操作,要么成功,要么失败2 事务特性 ACID3 不考虑隔离性产生读问题 脏读,不可重复读,幻读,4 解决读问题 (1)设置隔离级别Spring事务管理api1 spring事务管理两种方式 第一种 编程式事务管理(不用)第二种 声明式事务管理 (1)基于xml配置文件实现 (2)基于注解实现2 spring事务管理的api...原创 2018-05-21 18:36:46 · 116 阅读 · 0 评论 -
SpringBoot 学习系列三(SpringMVC 实现)
简单的SpringMVC 程序1.创建springmvc.xml创建SpringMVC的核心配置文件,SpringMVC本身就是Spring的子项目,对Spring兼容性很好,不需要做很多配置。这里只配置一个Controller扫描就可以了,让Spring对页面控制层Controller进行管理。&amp;amp;amp;amp;lt;?xml version=&amp;amp;amp;quot;1.0&amp;amp;amp;quot; enco原创 2018-06-02 18:53:31 · 211 阅读 · 0 评论 -
MyBatis(一)基本介绍
1.Mybatis 介绍MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精...原创 2018-06-03 10:40:49 · 158 阅读 · 0 评论 -
Mybatis(三)Mapper动态代理方式
1.开发规范Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。Mapper接口开发需要遵循以下规范: 1、Mapper.xml文件中的namespace与mapper接口的类路径相同。 2、Mapper接口方法名和Mapper.xml中定义的每个stateme...原创 2018-06-03 15:58:31 · 205 阅读 · 0 评论 -
动态sql 以及 手动映射
1.动态sql1.1使用if标签&amp;lt;!-- 根据条件查询用户 --&amp;gt;&amp;lt;select id=&quot;queryUserByWhere&quot; parameterType=&quot;user&quot; resultType=&quot;user&quot;&amp;gt; SELE原创 2018-06-03 20:07:52 · 594 阅读 · 0 评论 -
Mybatis(二)整合spring
1.整合思路1、SqlSessionFactory对象应该放到spring容器中作为单例存在。 2、传统dao的开发方式中,应该从spring容器中获得sqlsession对象。 3、Mapper代理形式中,应该从spring容器中直接获得mapper的代理对象。 4、数据库的连接以及数据库连接池事务管理都交给spring容器来完成。2.整合需要的jar包1、spring的j...原创 2018-06-03 21:20:11 · 189 阅读 · 0 评论 -
SpringMVC 整合Mybatis
1.整合目标控制层采用springmvc、持久层使用mybatis实现。 Dao层: 1、SqlMapConfig.xml,空文件即可,但是需要文件头。 2、applicationContext-dao.xml 数据库连接池 SqlSessionFactory对象,需要spring和mybatis整合包下的。 配置mapper文件扫描器Service层: 1、...原创 2018-06-04 13:52:08 · 146 阅读 · 0 评论 -
SpringMVC 与Struts MyBatis与Hibernate
Spring MVC与Struts1.机制:spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。2.性能:spring会稍微比struts快。 sturts是基于类,每次发一次请求都会实例...原创 2018-08-14 15:54:34 · 293 阅读 · 0 评论 -
RabbitMq 入门
RabbitMqRabbitMq 是一个消息队列,它接受并传递消息,可以认为它是一个邮局,但是它不传递值,传递的是二进制的数据块,也就是消息。有一些rabbitMq的术语,生产者指的是发送消息的人,队列指的是rabbitMq里面的一个消息盒子,消息都存储在这个队列里,队列受主机的内存和硬盘限制。实质上就是一个很大的消息缓冲区。许多生产者可以把消息都放入这个队列中,需要消费者可以从这个队列中...原创 2018-08-07 16:54:29 · 307 阅读 · 0 评论 -
Spring IOC
基本概念1 spring是开源(免费的)的轻量级框架(没有太多依赖)2 spring核心主要两部分: (1)aop:面向切面编程,扩展功能不是修改源代码实现 (2)ioc:控制反转, - 比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new出来对象 - 把对象的创建不是通过new方式实现,而是交给spring...原创 2018-05-20 11:18:28 · 148 阅读 · 0 评论