- 博客(109)
- 收藏
- 关注
原创 SpringBoot入门
背景:J2EE笨重的开发、繁多的配置、低下的开发效率、复制的部署流程、第三方技术集成难度大。措施:使用SpringBoot来简化J2EE的开发。Spring全家桶时代:Spring Boot ——> Spring的大整合,J2EE一站式解决方案Spring Cloud ——> 分布式整体解决方案SpringBoot优点• 创建独立Spring应用• 内嵌web服务器• 自动starter依赖,简化构建配置• 自动配置Spring以及第三方功能• 提供生产级别的监控、健康
2021-02-18 17:21:08
139
原创 滴滴
1、乐观锁、悲观锁2、hashmap存值的原理3、归并排序4、NIO 和 BIO5、数据库隔离级别6、分布式的了解7、创建对象的几种方法(四种)newclone序列号8、ArrayList和set的区别9、数据库优化10、JVM11、抽象类的接口的区别??以及什么时候使用抽象类??什么时候使用接口??...
2020-09-06 21:06:50
218
转载 关于Java中length、length()、size()的区别
首先区分一下length和length();length不是方法,是属性,数组的属性;public static void main(String[] args) { int[] intArray = {1,2,3}; System.out.println("这个数组的长度为:" + intArray.length);}length()是字符串String的一个方法;public static void main(String[] args) { String str = "HelloWo
2020-09-02 09:57:25
356
原创 东方国信
MysqlMysql都有哪些内置的函数??Mysql获取时间的函数??怎样把时间转换为字符串??Git用图形化界面还是命令行??Git常用的命令有哪些??提交代码、推送代码到服务端、从服务端获取代码、切换分支MybatisMybatis中sql语句写法??resultType 属性:用于指定结果集的类型。parameterType 属性:用于指定传入参数的类型。 <select id="findUserByVo" parameterType="do
2020-08-21 17:25:57
327
原创 宜信面试
2020-08-11宜信视频面(40min)涉及到项目、Java基础知识、框架、mysql、算法,主要还是项目问的多!!!项目项目是不是单点开发,有没有了解过分布式开发??项目的不足??项目有几个模块??怎样实现的登录注册??有没有尝试过对项目进行优化??除了Ajax、Json进行前后端交互外,你还了解哪些前后端交互的方法??你觉得用框架的好处有啥??Java基础知识问了Java的Collection集合框架、Map集合框架ArrayList、LinkedList的区别??有
2020-08-18 22:47:32
293
原创 服务器端方法的权限控制
在服务器端我们可以通过Spring security提供的注解对方法来进行权限控制。Spring Security在方法的权限控制上支持三种类型的注解:JSR-250注解、@Secured注解和支持表达式的注解。这三种注解默认都是没有启用的,需要单独通过global-method-security元素的对应属性进行启用JSR-250注解的使用步骤(1) 在spring-security.xml中添加: <security:global-method-security jsr250-anno
2020-08-01 21:23:00
492
原创 Spring Security——基于配置文件
Spring Security框架是Spring项目组中用来提供安全认证服务的框架。安全包括两个主要操作:认证:是为用户建立一个它所声明的主体,主体一般是指用户、设备或可以在你系统中执行动作的其他系统。我们之间做的登录操作,当登录的时候需要判断用户名、密码是否正确,这个就是一个认证的过程授权:指的是一个用户能否在你的应用中执行某个操作,在到达授权判断之前,身份的主题已经由身份验证过程建立了。用户是否有权限去执行某个操作,可能早在数据库中都已经描述过了。通过授权可以判断一个操作是否允许它
2020-07-26 21:42:48
527
原创 git的学习 —— 远程仓库的一些操作
上一篇博文(git的学习 —— 本地仓库的一些操作)中我们已经在本地创建了一个Git仓库,又想让其他人来协作开发,此时就可以把本地仓库同步到远程仓库。常用的远程仓库就是github:Github官网在GitHub上创建一个远程仓库:(1)(2)(3)当看到这个页面,说明创建成功了HTTPS 和 SSH都是通信协议。HTTPS是加密的HTTP,可以实现安全的传输。SSH 为 Secure Shell(安全外壳协议)的缩写,由 IETF 的网络小组(Network Working Gro
2020-07-19 20:20:09
150
原创 git的学习 —— 本地仓库的一些操作
git和svn都是版本管理工具,不同的是svn需要开发人员在一个局域网内使用,而git摒弃了这个缺点。git的工作流程:git的安装下载地址:https://git-scm.com/download安装是傻瓜式安装,一直点就行了,使用默认安装路径C:\Program Files\Git就好下载安装好了以后,当鼠标右键的时候,就出现 Git GUI Here(图形化界面) 和 Git Bash Here(命令行)在Git Bash Here(命令行)里面可以敲linux的命令,比如ls、cp
2020-07-15 22:54:58
151
原创 SQL的四种连接 ——内连接、左连接(左外连接)、右连接(右外连接)、全连接(全外连接)
在数据库中建立两张表,分别是 user 和 uuser表:u表关联字段user.u_id 和 u.parent_id来演示一下MySQL的 内连接、左连接(左外连接)、右连接(右外连接)、全连接(全外连接)内连接关键字:inner join onsql语句: select user.*,u.* from user inner join u on user.u_id=u.parent_id运行结果:分析:内连接就是找两个表的交集左连接(左外连接)关键字:left joi
2020-07-10 11:29:34
5769
2
原创 SpringMVC拦截器
当提到 ”拦截器“,我第一反应想到的是 servlet中的过滤器,建议大家先去复习一下过滤器:过滤器的学习。然后对比 过滤器 和 拦截器 的异同。一、概述(1)基本概念Spring MVC 的处理器拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。拦截器也是AOP思想的一种实现方式想要自定义拦截器,需要实现HandlerInterceptor接口。(2)拦截器链拦截器链就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,
2020-07-03 22:41:10
98
原创 SpringMVC的异常处理
当系统出异常的时候,往往是让页面跳到一个友好的页面,比如:该系统正在维护中,请联系管理员。。。。。这个其实就是一个异常处理的解决方案。SpringMVC为我们提供了一个异常处理的解决方案:异常处理的思路:系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。系统的 dao、service、controller 出现都通过 throws Exception 向上抛出,最后由 sprin
2020-07-03 21:11:43
97
原创 SpringMVC实现文件上传
SpringMVC实现文件上传代码逻辑:1、导入关于文件上传的jar包2、给出 web.xml 和 success.jsp3、给出前端代码<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>主页</title> </head><body> <h3>文
2020-07-02 21:53:57
181
原创 关于springMVC的响应数据
一、返回值分类:1、响应返回值是string类型(1)给出一个实体类Userpublic class User implements Serializable{ private String username; private String password; private Integer age; //getset方法 //ToString方法}(2)给出配置文件(web.xml 和 springmvc.xml)(3)给出前台代码 <a href=
2020-07-02 11:44:47
163
原创 SpringMVC的入门笔记(下)
这篇博文,我们来学习一些常用的注解一、RequestParam作用:把请求中指定名称的参数给控制器中的形参赋值。属性:value:请求参数中的名称。required:请求参数中是否必须提供此参数。默认值:true。表示必须提供,如果不提供将报错。...
2020-06-27 22:25:06
100
原创 SpringMVC的入门笔记(中)
当页面数据提交到服务器端,页面提交的任何数据,它都是字符串类型的,可是我们后台的javabean里面的属性,却不都是字符串类型的,这就牵扯到类型转换啦。SpringMVC内部帮我们进行了类型转换但是框架帮我们进行的类型转换,是有限制的。比如说 字符串类型 -> 日期类型,SpringMVC内部默认只支持2007/09/03这种类型格式。但是我们就想用别的格式呢???这就牵扯到自定义类型转换器类型转换器先来看一个小栗子1、给出实体类User.javapublic class User im
2020-06-25 21:45:45
82
原创 SpringMVC的入门笔记(上)
三层架构三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为 表示层、业务层 和 持久层 三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体。表现层:也就是我们常说的web层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求web 层,web 需要接收 http 请求,完成 http 响应。表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,
2020-06-24 21:23:07
157
原创 Spring中的事务控制(下)
上篇文章,我们是使用自己写工具类的方式,实现了事务控制,在Spring中,spring 框架为我们提供了一组事务控制的接口(这组接口是在spring-tx-5.0.2.RELEASE.jar 中)Spring 中事务控制的 API 介绍:(1)PlatformTransactionManager,此接口是 spring 的事务管理器,它里面提供了我们常用的操作事务的方法public interface PlatformTransactionManager { //根据事务定义Transac
2020-06-23 11:26:09
183
原创 Spring中的事务控制(上)
先来看我们数据库中的表:我们要做的事情,就是熟悉的转账操作,不过这次是用Spring容器中进行的。栗子:未开启事务的转账1、首先提供一个账户的实体类 Account.java(具体参考上一篇博文,在此不做展示)2、给出账户的持久层接口 IAccountDao.javapublic interface IAccountDao { /** * 更新 * @param account */ void updateAccount(Account account)
2020-06-22 21:33:10
153
原创 SpringAOP四种通知类型+环绕通知
SpringAOP的四种通知类型:前置通知、异常通知、后置通知、异常通知一、四种常见的通知类型给出 账户的业务层接口 IAccountService.java,为了便于演示这四种通知类型,我们就只留下了一个方法。public interface IAccountService { void saveAccount();}给出 账户的业务层接口的实现类 AccountServiceImpl.javapublic class AccountServiceImpl implements IA
2020-06-18 20:17:25
4179
原创 SpringAOP的初步学习
学习AOP之前,强烈建议大家先复习一下动态代理,可以看一下本人的另一篇博客:设计模式之 代理模式什么是 AOPAOP 为Aspect Oriented Programming的缩写,意为:面向切面编程。通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP(面向对象程序设计)的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时
2020-06-18 12:33:11
123
原创 Spring 单表 CURD 认识配置IOC的两兄弟(XML&注解)
这篇博文通过一个案例,目的是对前面Spring学习的一个加深!!这是我们数据库中的 account 表,我们要先通过XML的配置,对这个表进行CRUD操作。XML方式配置SpringIOC项目所必须的jar包:对照着数据库中的account表,创建实体类 Account.javapublic class Account implements Serializable { private Integer id; private String name; private
2020-06-16 12:55:28
134
原创 springIOC 基本的注解学习
之前我们基于XML文件的配置是这样写的: <bean id="accountService" class="service.AccountServiceImpl" scope="" init-method="" destroy-method=""> <property name="" value="" | ref=""></property> </bean>这次我们来看看用注解的方式,如何写?一、@Component
2020-06-13 18:01:33
285
原创 初识TCP/IP
什么是tcp/ip?TCP/IP 是因特网的通信协议。通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信。因特网浏览器和因特网服务器均使用 TCP/IP 来连接因特网。浏览器使用 TCP/IP 来访问因特网服务器,服务器使用 TCP/IP向浏览器传回 HTML。电子邮件程序使用 TCP/IP 来连接因特网,这样才能收发邮件。TCP/IP 是基于 TCP ...
2020-06-13 10:57:29
521
原创 SpringDI的初步学习
spring中的 依赖注入 Dependency Injection当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。依赖注入有两种:设值注入、构造注入所谓依赖注入,是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创
2020-06-11 22:02:56
112
原创 SpringIOC的初步学习
什么是IOC(控制反转)呢?、拿上一篇博文来举例,业务逻辑层从private IAccountDao accountDao = new AccountDaoImpl();优化为:private IAccountDao accountDao = (IAccountDao) BeanFactory.getBean("accountDao");前者完全有权利选择自己需要的Dao,来实例化dao。但是它把这个权利交给我们的BeanFactory了。前者有着独立控制权,想要谁就要谁,独立控制权的转移就叫做:控制..
2020-06-11 09:41:20
378
1
原创 对初识Spring工厂模式的思考
什么是Spring?Spring 是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 SpringMVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架。spring 的体系结构Sprin
2020-06-09 20:39:41
249
原创 Mybatis中的缓存
什么是缓存?存在于内存中的临时数据。为什么使用缓存?减少和数据库的交互次数,提高执行效率。什么样的数据能使用缓存,什么样的数据不能使用适用于缓存:经常查询并且不经常改变的。数据的正确与否对最终结果影响不大的。不适用于缓存:经常改变的数据数据的正确与否对最终结果影响很大的。例如:商品的库存,银行的汇率,股市的牌价。Mybatis中的缓存分为一级缓存和二级缓存一级缓存:它指的是Mybatis中SqlSession对象的缓存。当我们执行查询之后,查询的结果会同时存入到SqlS
2020-06-06 21:56:28
117
原创 Mybatis的延迟查询
何谓延迟加载??就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载。好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。坏处:因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗时间,所以可能造成用户等待时间变长,造成用户体验下降。举一例:1、先给出 User.java 和 Account.java (从 Mabatis中的多表查询 —— 一对多 中找)2、给出接口 I
2020-06-06 19:03:47
621
原创 Mybatis中的动态sql语句
(1)动态sql语句 —— if(2)动态sql语句 —— where(3)动态sql语句 —— foreach示例:假如要用很多个用户的id(封装到List集合中),来查询处多个用户的信息1)给出 User.java2)给出 QueryVo.javaimport java.util.List;public class QueryVo { private User user; private List<Integer> ids; public List<
2020-06-03 19:41:41
110
原创 Mybatis参数深入——改造conf.xml文件
实体类包装类的参数传递SQL 语句传参,使用标签的 parameterType 属性来设定。该属性的取值可以是基本类型,引用类型(例如:String 类型),还可以是实体类类型(POJO 类)。同时也可以使用实体类的包装类!!!1、首先提供个 User.java2、给出 QueryVo .java,可以用来封装多个实体类public class QueryVo { private User user; public User getUser() { return user; } p
2020-05-30 20:05:01
230
原创 Mybatis的CRUD操作
Mybatis的CRUD操作1、先给出实体类 User.java (和上篇博客一样,此处不予展示)2、给出接口 IUserDaopackage dao;import java.util.List;import domain.User;public interface IUserDao { /** * 查询所有 * @return */ List<User> findAll(); /** * 保存用户信息 */ void save(User user
2020-05-30 17:25:21
138
原创 Mybatis入门
Mybatis官网:https://mybatis.org/mybatis-3/zh/index.html什么是框架?这里引用网上的描述:框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。简而言之,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。什么是M
2020-05-28 19:44:50
150
原创 java中的其它 IO 流 —— 序列化流
Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该 对象的数据 、 对象的类型 和 对象中存储的属性 等信息。序列化流:(ObjectOutputStream)把对象以流的方式,写入到文件中保存,叫 写对象writeObject(p),也叫对象的序列化。继承关系java.io.ObjectOutputStream extends OutputStre...
2020-05-02 18:03:14
123
原创 java中的其它 IO 流 —— 转换流
首先要弄清楚两个概念:字符编码 字符集字符编码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码 。比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本f符号。反之,按照A规则存储,再按照B规则解析,...
2020-05-02 16:43:56
99
原创 java中的其它 IO 流 —— 缓存流
之前学习过一些基础的流-------------------java中的io流——字节流-------------------java中的io流——字符流今天学一些功能更强大的流,这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。缓冲流分类:字节缓冲流: BufferedInputStream , BufferedOut...
2020-05-01 16:32:53
131
原创 redis的学习(下)
上篇博文讲解了如何通过 命令行 的方式操作redis数据库,本篇博文用来讲述如何通过 java代码 操作redis数据库。类似于java代码操作mysql数据库要先导入jar包一样,这里也需要导入Jedis(一款java操作redis数据库的工具)的jar包:jedis-2.7.0.jar commons-pool2-2.3.jar如何使用Jedis??Jedis的操作相对于jdbc操作my...
2020-04-22 21:13:50
85
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人