java开发框架学习笔记
文章平均质量分 88
小钟要学习!!!
一个新手的程序员跟着黑马教程一路走的学习经验与总结分享在此(接项目)
说明:所有的博客大多来源网络教程视频学习总结得来
展开
-
SpringBoot使用注解整合Redis
Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。原创 2022-10-11 12:13:16 · 341 阅读 · 2 评论 -
j2cache入门使用
j2cache是OSChina目前正在使用的两级缓存框架。L1: 进程内缓存 caffeine/ehcacheL2: 集中式缓存 Redis/Memcachedj2cache其实并不是在重复造轮子,而是作资源整合,即将Ehcache、Caffeine、redis、Spring Cache等进行整合。由于大量的缓存读取会导致L2的网络成为整个系统的瓶颈,因此L1的目标是降低对L2的读取次数。该缓存框架主要用于集群环境中。单机也可使用,用于避免应用重启导致的ehcache缓存数据丢失。...原创 2022-09-01 08:42:34 · 866 阅读 · 18 评论 -
Java权限认证机制之JWT令牌生成和解析以及SpringMVC参数解析器
HTTP Basic Auth 是一种简单的登录认证方式,Web浏览器或其他客户端程序在请求时提供用户名和密码,通常用户名和密码会通过HTTP头传递。简单点说就是每次请求时都提供用户的username和password这种方式是先把用户名、冒号、密码拼接起来,并将得出的结果字符串用Base64算法编码。例如,提供的用户名是bill、口令是123456,则拼接后的结果就是,然后再将其用Base64编码,得到。最终将Base64编码的字符串发送出去,由接收者解码得到一个由冒号分隔的用户名和口令的字符串。...原创 2022-08-31 13:48:11 · 1467 阅读 · 5 评论 -
快速入门logback日志框架与SpringEvent事件通知机制
Logback继承自log4j。Logback的架构非常的通用,适用于不同的使用场景。通过上图可以看到logback和Log4j都是slf4j规范的具体实现,我们在程序中直接调用的API其实都是slf4j的api,底层则是真正的日志实现组件—logback或者log4j。Logback 构建在三个主要的类上:Logger,Appender 和 Layout。这三个不同类型的组件一起作用能够让开发者根据消息的类型以及日志的级别来打印日志。Logger作为日志的记录器,把它关联到应用的对应的context后原创 2022-08-31 09:05:40 · 351 阅读 · 2 评论 -
AntiSamy防跨站脚本攻击(XSS)快速入门
XSS:跨站脚本攻击(Cross Site Scripting),为不和 CSS混淆,故将跨站脚本攻击缩写为XSS。XSS是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。有点类似于sql注入。...原创 2022-08-29 19:28:24 · 915 阅读 · 4 评论 -
hibernate-validator后端表单数据校验的使用
早期的网站,用户输入一个邮箱地址,需要将邮箱地址发送到服务端,服务端进行校验,校验成功后,给前端一个响应。有了JavaScript后,校验工作可以放在前端去执行。那么为什么还需要服务端校验呢?因为前端传来的数据不可信。前端很容易获取到后端的接口,如果有人直接调用接口,就可能会出现非法数据,所以服务端也要数据校验。前端校验:主要是提高用户体验后端校验:主要是保证数据安全可靠校验参数基本上是一个体力活,而且冗余代码繁多,也影响代码的可读性,我们需要一个比较优雅的方式来解决这个问题。...原创 2022-08-29 14:02:07 · 1367 阅读 · 2 评论 -
Java中的dozer对象转换
Dozer是Java Bean到Java Bean映射器,它以递归方式将数据从一个对象复制到另一个对象。dozer是用来对两个对象之间属性转换的工具,有了这个工具之后,我们将一个对象的所有属性值转给另一个对象时,就不需要再去写重复的调用set和get方法了。dozer其实是对我们熟知的beanutils的封装。...原创 2022-08-29 12:11:55 · 846 阅读 · 1 评论 -
入门级swagger2和knife4j的详细使用
相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。但是这个接口文档对于程序员来说,就跟注释一样,经常会抱怨别人写的代码没有写注释,然而自己写起代码起来,最讨厌的,也是写注释。所以仅仅只通过强制来规范大家是不够的,随着时间推移,版本迭代,接口文档往往很容易就跟不上代码了。...原创 2022-08-29 09:50:03 · 1688 阅读 · 22 评论 -
最新MySql8.27主从复制以及SpringBoot项目中的读写分离实战
Sharding-JDBC定位为轻量级Java框架,在Java的DBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的DBC驱动,完全兼容JDBC和各种ORM框架。使用Sharding-JDBC可以在程序中轻松的实现数据库读写分离。适用于任何基于JDBC的ORM框架,如:JPA,Hibernate,.Mybatis,Spring JDBC Template或直接使用DBC。...原创 2022-08-07 08:00:00 · 811 阅读 · 27 评论 -
SpringCache缓存处理
SpringCache是一个框架,实现了基于注解缓存功能,只需要简单地加一个注解,就能实现缓存功能。SpringCache提高了一层抽象,底层可以切换不同的cache实现,具体就是通过cacheManager接口来统一不同的缓存技术cacheManager是spring提供的各种缓存技术抽象接口针对不同的缓存技术需要实现不同的cacheManager接口描述使用EhCache作为缓存技术使用Google的GuavaCache作为缓存技术使用Redis作为缓存技术。...原创 2022-08-06 10:07:32 · 2109 阅读 · 24 评论 -
Java中常见PDF报表生成方式(iText、JasperReports、解决不输出中文的方法)
快速入门创建文件设计PDF的模板创建单元测试环境找到输出的文件路径打开查看,格式如下使用JasperReports导出pdf报表,开发流程如下:点击进入到选择下载版本的页面下载需要注册账号和登录下载完成之后直接双击程序进行下一步的安装即可(可以根据需求修改安装路径)打开软件的首页在快速入门案例里面导入的模板文件就是通过这个软件来完成设计的,下面将重点讲解和介绍该软件的使用项目的创建带有一......原创 2022-07-08 08:00:00 · 1856 阅读 · 31 评论 -
在项目中应用SpringSecurity权限控制
要进行认证和授权需要前面课程中提到的权限模型涉及的7张表支撑,因为用户信息、权限信息、菜单信息、角色信息、关联信息等都保存在这7张表中,也就是这些表中的数据是我们进行认证和授权的依据。所以在真正进行认证和授权之前需要对这些数据进行管理,即我们需要开发如下一些功能:1、权限数据管理(增删改查)2、菜单数据管理(增删改查)3、角色数据管理(增删改查、角色关联权限、角色关联菜单)4、用户数据管理(增删改查、用户关联角色)1、Spring Security环境准备1.1、在health_backend工程的原创 2022-06-24 19:47:52 · 1300 阅读 · 31 评论 -
Java实现手机验证码登录和SpringSecurity权限控制
由于身份受限,只能基于模拟的方式进行验证码发送,而不能通过手机短信实现(开通需要认证资质或上线项目)2、后端生产验证码并保存到Redis中3、手机登录后端代码编写3.1、Controller登录控制器编写页面登录够可以查看浏览器的Cookie是否有保存到用户的手机号信息查看Redis可视化工具查看保存的用户登录信息系统提供的用于识别用户身份的功能,通常提供用户名和密码进行登录其实就是在进行认证,认证的目的是让系统知道你是谁。用户认证成功后,需要为用户授权,其实就是指定当前用户可以原创 2022-06-24 11:19:16 · 2017 阅读 · 10 评论 -
SSM框架整合
SSM框架整合项目搭建环境准备数据库准备create database ssm;create table account( id int primary key auto_increment, name varchar(100), money double(7,2));创建ssm数据可以及一个account账户表创建zcl_ssmMaven工程,搭建项目基本骨架pom.xml文件下导入依赖坐标<dependencies> &原创 2022-05-10 09:00:00 · 205 阅读 · 0 评论 -
MyBatis注解开发(多表查询)
MyBatis注解开发这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件了。常见的注解开发:@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起使用,封装多个结果集@One:实现一对一结果集封装@Many:实现一对多结果集封装项目搭建创建mybatis-anno项目原创 2022-05-09 14:54:29 · 1945 阅读 · 1 评论 -
MyBatis的多表操作
MyBatis的多表操作项目搭建创建一个order数据库表与user连接,userid作为外键被引用创建mybatis-multiMaver模块在main文件下创建com.zcl.domain包名创建User实体和Order实体User实体public class User { private int id; private String username; private String password; private Date birthd原创 2022-05-09 09:08:55 · 617 阅读 · 0 评论 -
MyBatis核心配置文件深入(分页插件使用)
MyBatis核心配置文件深入typeHandlers标签无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。下表描述了一些默认的类型处理器(截取部分)你可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。具体做法为:实现org.apache.ibatis.type.TypeHandler 接口, 或继承一个很便利的类 org.apache.原创 2022-05-09 09:00:00 · 338 阅读 · 0 评论 -
MyBatis映射文件深入
MyBatis映射文件深入项目的环境搭配参考上一篇文章动态sql语句概念Mybatis 的映射文件中,前面我们的 SQL 都是比较简单的,有些时候业务逻辑复杂时,我们的 SQL是动态变化的,此时在前面的学习中我们的 SQL 就不能满足要求了。实际业务场景分析:项目顶部的搜索框,一般都是多条件查询的,比如:可以根据用户姓名、手机号、身份证、性别等进行数据查询具体实现分析:当用户输入的所有查询条件都满足的时候,就可以使用后端写好的进行一个数据查询select * from user原创 2022-05-09 09:00:00 · 117 阅读 · 0 评论 -
MyBatis的Dao层实现(动态代理)
MyBatis的Dao层实现代理开发方式采用 Mybatis 的代理开发方式实现 DAO 层的开发,这种方式是我们后面进入企业的主流。Mapper 接口开发方法只需要程序员编写Mapper 接口(相当于Dao 接口),由Mybatis 框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。Mapper 接口开发需要遵循以下规范:Mapper.xml文件中的namespace与mapper接口的全限定名相同Mapper接口方法名和Mapper.xml中定义的原创 2022-05-08 15:17:53 · 956 阅读 · 0 评论 -
Mybatis复习学习
Mybatis学习原始jdbc操作的分析原始jdbc开发存在的问题如下:数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变java代码。查询操作时,需要手动将结果集中的数据手动封装到实体中。插入操作时,需要手动将实体的数据设置到sql语句的占位符位置应对上述问题给出的解决方案:使用数据库连接池初始化连接资源将sql语句抽取到xml配置文件中使用反射、内省等底层技术,自动将实体原创 2022-05-08 10:44:59 · 231 阅读 · 0 评论 -
Spring的事务控制
Spring的事务控制编程式事务控制相关对象PlatformTransactionManagerPlatformTransactionManager 接口是 spring 的事务管理器,它里面提供了我们常用的操作事务的方法。方法说明TransactionStatus getTransaction(TransactionDefination defination)获取事务的状态信息void commit(TransactionStatus status)提交事务原创 2022-05-08 09:00:00 · 116 阅读 · 0 评论 -
Spring基于XML的AOP开发
Spring基于XML的AOP开发快速入门项目使用上一篇文件的spring-aop导入AOP相关坐标<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:原创 2022-05-07 09:08:01 · 215 阅读 · 0 评论 -
Spring的AOP简介
Spring的AOP简介什么是AOPAOP为Aspect Oriented Programming的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP【面向对象编程】的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP的作用和优势作用:在程序运行期间,在原创 2022-05-06 11:45:23 · 113 阅读 · 0 评论 -
SpringMVC异常处理机制
SpringMVC异常处理机制创建spring-exception项目工程【web项目】在pox.xml配置文件中导入需要的依赖坐标和tomcat7插件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xs原创 2022-05-06 07:34:48 · 207 阅读 · 0 评论 -
SpringMVCJdbcTemplate基本使用
SpringMVCJdbcTemplate基本使用1、JdbcTemplate概念它是spring框架中提供的一个对象,是对原始繁琐的jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和HibernateTemplate,操作nosql数据库的RedisTemplate,操作消息队列的msTemplate等等。2、JdbcTemplate开发步骤导入spring-jdbc和spring-tx坐标由于是spring所以还原创 2022-05-01 18:52:33 · 394 阅读 · 1 评论 -
SpringMVC获取请求数据-文件上传
SpringMVC获取请求数据-文件上传1、文件上传的三要素表单项type=“file”表单的提交方式是post表单的enctype属性是多部分表单形式,及enctype="multipart/form-data’2、文件上传的快速入门前端页面实现<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>文件上传&l原创 2022-04-28 17:06:43 · 363 阅读 · 0 评论 -
SpringMVC获取请求参数2以及注意事项【开放请求权限、解决乱码、参数绑定注解、Restful风格参数、自定义类型转换器、获取servle、获取请求头】
SpringMVC获取请求参数的注意事项1、请求本地的jquery文件失败原因:问题在前端控制器的配置,打开web.xml文件,里面有配置如下的代码<!--配置springmvc前端控制器--><servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherSer原创 2022-04-28 16:13:50 · 705 阅读 · 0 评论 -
SpringMVC获取几种请求参数数据
SpringMVC获取请求数据1、获取请求参数的几种类型客户端请求参数的格式是:name=value&name=value…服务器端要获得请求的参数,有时还需要进行数据的封装,SpringMVC可以接收如下类型的参数:基本类型参数POJO类型参数数组类型参数集合类型参数2、获取基本类型参数@Controller@RequestMapping("/user")public class UserController { // ------ 以下是:获取基本数据类型请求数原创 2022-04-28 13:05:59 · 298 阅读 · 0 评论 -
SpringMVC的数据响应
SpringMVC的数据响应1、数据响应方式页面跳转直接返回字符串此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转在spring-mvc.xml配置文件中设置如下<!--配置内部资源视图解析器--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--前缀-->原创 2022-04-27 20:04:43 · 362 阅读 · 0 评论 -
SpringMVC快速入门组件解析
SpringMVC快速入门组件解析1、SpringMVC的执行流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M3oVkIW2-1650986510830)(image/image-20220426221736765.png)]用户发送请求至前端控制器DispatcherServlet,.DispatcherServlet!收到请求调用HandlerMapping处理器映射器。处理器映射器找到具体的处理器(可以根据x配置、注解进行查找),生成处理器对象及处理器拦原创 2022-04-26 23:22:14 · 289 阅读 · 0 评论 -
SpringMVC快速入门
SpringMVC快速入门本片文章基于上一个文章的工程模型来完成开发概念SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFrameWork的后续产品,已经合在Spring Web Flow中。SpringMVC已经成为目前最主流的MVC框架之一,并且随着Spring3.0的发布,全面超越Struts2,成为最优秀的MVC框架。它通过一套注解,让一个简单的Jv类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful编程风格原创 2022-04-26 22:12:51 · 629 阅读 · 0 评论 -
Spring与Web环境集成
Spring与Web环境集成一、环境搭配创建项目Spring_MVCMaven的web项目需要在pox.xml文件上将打包方式设置为war<packaging>war</packaging>导入需要的依赖坐标<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connec原创 2022-04-23 13:51:22 · 234 阅读 · 0 评论 -
Spring整合Junit
Spring整合Junit在上两篇的学习中,每一个Spring测试方法都使用到以下两行代码// ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");ApplicationContext app = new AnnotationConfigApplicationContext(SpringCofiguration.class); UserService bean = app原创 2022-04-23 09:27:31 · 872 阅读 · 0 评论 -
Spring注解开发
Spring注解开发一、spring原始注解Spig是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xm配置文件可以简化配置,提高开发效率。原始注解主要是替代的配置注解说明@Component使用在类上用于实例化Bean@Controller使用在web层类上用于实例化Bean@Service使用在service层类上用于实例化Bean@Repository使用在dao层类上用于实例化Bean@Autowired原创 2022-04-23 00:16:23 · 699 阅读 · 1 评论 -
Spring配置数据源(连接池)
Spring配置数据源(连接池)数据源(连接池)的作用数据源(车接池)是提高程序性做如出现的事先实例化数据源,初始化部分连接资源使用连接资源时从数据源中获取使用完毕后将连接资源归还给数据源常见的数据源(连接池):DBCP、C3P0、BoneCP、Druid等一、数据源的开发步骤创建一个mavenweb项目导入数据源的坐标和数据库驱动坐标<!--导入依赖坐标--><dependencies> <dependency>原创 2022-04-19 09:32:07 · 432 阅读 · 2 评论 -
Spring框架入门笔记
Spring框架1、Spring是什么?Spring是分层的Java SE,/EE应用full-stack轻量级开源框架,以IoC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为内核。提供了展现层SpringMVC和持久层Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的v阳EE企业应用开源框架。2、Spring的优势方便原创 2022-04-13 22:32:33 · 250 阅读 · 2 评论