热爱生活,热爱编程,乐于分享,善于总结。
暂时未有相关通用技术能力~
阿里云技能认证
详细说明MyBatis Plus的分页,有插件式的,也有其自带了,插件需要配置,说麻烦也不是特别麻烦,不过觉得现有的MyBatis Plus足以解决,就懒得配置插件了。 MyBatis Plus的资料不算是太多,与MyBatis相比。
今天遇到一个十分操蛋的问题,最后发现是因为忘记在对应的Service上加上@AutoWired。 难怪单元测试没问题,因为单元测试中用到的Service,其实现类通过DAO自动装配了。也就是在对应的spring-mybatis.xml配置了Bean。
我推荐的这些项目,我自己都在实际开发环境中使用过,目前暂时没有遇到副作用,当然也不排除存在副作用,当然了,就目前web应用开发而言,还没有遇到严重影响项目对外提供正常服务。另外这些开源项目的源代码都是对外完全开放的,大家如果觉得它只能满足大部分需求,不满足特定需求,可根据个人能力或团队能力自行改造。
我推荐的如下书籍,都是我看过的,觉得还不错,很有启发意义,不管是本专业出身还是其他转行过来的,我认为都有必要看看。 推荐书一: 推荐理由: 可以让你系统了解什么是软件工程,采用什么方式让开发具有高效率,而且还让你知道为什么代码要这么写,架构要这样分。
当下有许多流行的Web原型设计工具,比如mockplus等,mockplus在我们团队初次开发rms系统用到过,确实还不错,但是,原型工具有其优势也有其劣势。 礼拜一开会时,经理跟我说,觉得现在的LMS还不太完善,比如如果我们要更换某个功能时,或者是换掉这个第三方提供者接口功能,使用另外的第三方提供者的接口功能,还需要改动一些代码,经理希望可以通过在线配置的方式或者通过读取xml文件或json文件的方式(只需改配置文件即可)来实现零编程化。
session和cookie都是用来存储信息的,区别是session是在服务器端存储信息,而cookie则是在浏览器端存储信息。 通常服务器端存储session,服务器端存储和获取session,一般情况下是比较安全的,不排除黑客侵袭的情况下。
导入的依赖均为JavaWeb界面在线配置代码生成器这篇文章,你只需将这篇文章的maven依赖导入即可。 SpringAop利用注解的特性进行日志管理,只需在对应的方法上加上自己编写的注解,即可完美实现日志管理。
为什么要获取虚拟机内存和操作系统内存呢? 虚拟机内存,这里主要指JVM。为了防止有的时候因为JVM内存问题导致服务器宕机,所以有必要监控JVM的内存。当达到一定值时,通过邮件及时通知,防止线上宕机造成更大的损失。
FreeMarker之根据模型生成HTML代码与FreeMarker根据模型生成Java代码,本质上是一样的,关于生成Java代码可以参考我的这篇文章:FreeMarker之根据模板生成Java代码 一、导入依赖 4.
该篇文章,主要是工具普及,告诉大家有这么两款工具,可帮助我们进行JVM调优,及时看到JVM的变化。 不过建议,最好还是对于JVM相关的知识点,有一定的基础和熟悉。 JDK自带jconsole.exe和jvisualvm.exe这两款JVM分析工具。
阅读链接为:https://102.alibaba.com/downloadFile.do?file=1530517140411/Codelife.pdf 强烈推荐读一读 我大致浏览过一遍+重新选了几篇文章细看了一遍,有如下体会。
Sonar是一款代码质量分析工具,有助于帮助代码质量提高。 Sonar的官网地址为:https://www.sonarqube.org/downloads/ 点击 Show All Versions 会显示更多的版本,根据JDK版本和MySQL版本选择符合系统环境的版本。
这里安装的是Sonarlint3.6。插件安装非常简单。插件比Sonar更为简单快捷。 一、首先通过点击Eclipse上方Help菜单会出现一个下拉列表,点击其中的Eclipse MarketPlace,会出现如下界面 二、通过搜索框找到SonarLint,点击Install,接下来就是下一步下一步到最后重启Eclipse,非常简单,这里不再赘述。
软件需要解决的是用户所面临的现实问题,但是,这些现实问题需要由软件技术人员来解 决。情况往往是,开发软件的技术人员精通计算机技术,但并不熟悉用户的业务领域;而用户 清楚自己的业务,却又不太懂计算机技术。
在软件项目早期,需要对软件问题进行高层构架分析,以确定项目的可行性。还需要根据 可行性分析的结果制定出有效的项目实施计划,以指导软件项目的顺利开展。 一、计算机系统分析 当某个软件问题被作为项目提出时,即意味着,这个软件问题将成为一项工程任务,需要按照工程化作业流程来分阶段解决。
如同任何事物都有一个发生、发展、成熟,直至衰亡的全过程一样,软件系统或软件产品 也有一个定义、开发、运行维护,直至被淘汰这样的全过程,我们把软件将要经历的这个全过 程称为软件的生命周期。 为了使软件生命周期中的各项任务能够有序地按照规程进行,需要一定的工作模型对各项 任务给以规程约束,这样的工作模型被称为软件过程模型,或软件生命周期模型。
一、 软件特点 无形性(抽象性),比如人的大脑为硬件,软件则是大脑产生的思想。 二、 软件分类 1.功能划分 (1)系统软件:系统软件是计算机系统的必要成分,它跟计算机硬件紧密配合,以使计算 机系统的各个部分协调、高效地工作。
示例环境:JDK8+MAVEN3+SSM(Spring+SpringMVC+MyBatis Plus或者MyBatis) 现在比较流行的除了分布式或微服务就是动静分离。 动静分离,以nginx集群为例,nginx通常加载静态资源(js,img,css等)效率相对tomcat等应用服务器效率是非常高的,由其专门处理静态资源,而动态资源,通常由tomcat等应用服务器来处理,应用服务器处理动态资源的效率比nginx处理静态资源效率又要高很多很多。
关于直接main方法运行生成代码可参考我的这篇文章:MP实战系列(六)之代码生成器讲解 在线配置主要参考jeesite和jeecg,gun等开源项目,但是与它们相比又有很多不同? 与jeesite相比,jeesite采用的自己重新改装的MyBatis和使用freemarker模板进行在线代码配置生成;与jeecg相比,jeecg的持久层叫minidao,该dao按照其官方文档所说,即具有Hibernate的全自动性,又兼有MyBatis的灵活性。
EasyPoi的导出Excel功能和导入功能同样简单。我之前强调过,EasyPoi的原理本质就是Poi,正如MyBatis Plus的本质原理就是MyBatis。POI导入功能可以参考如下地址:https://blog.csdn.net/justinqin/article/details/78769789POI导出功能可以参考如下地址:关于EasyPoi导出Excel 首先说下,我为什么要用到导入Excel功能? 因为业务需要有一个Excel表格里面装有数据,然后通过文件上传的形式,直接动态批量录入数据。
以下列出均为常用(转自地址为:https://blog.csdn.net/pengShuai007/article/details/78357238?locationNum=9&fps=1 1、设置或获取整个 URL 为字符串 window.
自古至今,无规矩不成方圆。 Git提交也有其规范,业内做的比较好的,比较具有参考价值的就是Angular的提交。 Angular提交规范: (): #header // 空一行 // 空一行 格式讲解 Header Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。
首先说明,该示例的maven依赖可以复用Spring(十七)之表单处理还有 还有就是对应的web.xml和servlet.xml文件都能复用,不必再次修改。 说到重定向不得不提到一个转发。这里概述一下转发与重定向的区别: 重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。
异常处理,对于项目开发至关重要,总不能用户点击一个页面出错了,直接报500,那样用户体验多不好啊! 所以这里讲的是SpringMVC对异常的处理,希望能给大家带来一定的 帮助和启发。 一、编写实体 package com.
日志记录,也是常用的,比如异常信息记录或者其他相关信息记录,良好的日志记录有助于当系统出现某些不是特别大的问题时,可及时通过日志信息,捕捉到异常,从而确定是那段代码的问题,避免影响其他的代码。 关于maven依赖可以复用:Spring(十六之MVC框架 这里我简单演示: 一、编写HelloWorld.
表单处理在实际开发中,非常常见,比如登录、注册或者新增、修改等等。 希望本示例对于初学者有一定的提升和帮助 该表单实例,主要说明MVC,相当于前台表单提交,提交相当于一个Http请求,这个请求通过Controller映射到对应的@RequestMapping,找到对应的@RequestMapping的value,即路由,经过该路由处理,将数据以Model或ModelAndView或ModelMap的形式返回给前台展示。
MVC 框架教程 Spring web MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活、松散耦合的 web 应用程序的组件。MVC 模式导致了应用程序的不同方面(输入逻辑、业务逻辑和 UI 逻辑)的分离,同时提供了在这些元素之间的松散耦合。
声明式事务管理方法允许你在配置的帮助下而不是源代码硬编程来管理事务。这意味着你可以将事务管理从事务代码中隔离出来。你可以只使用注释或基于配置的 XML 来管理事务。 bean 配置会指定事务型方法。下面是与声明式事务相关的步骤: 我们使用标签,它创建一个事务处理的建议,同时,我们定义一个匹配所有方法的切入点,我们希望这些方法是事务型的并且会引用事务型的建议。
Spring 编程式事务管理 编程式事务管理方法允许你在对你的源代码编程的帮助下管理事务。这给了你极大地灵活性,但是它很难维护。 在我们开始之前,至少要有两个数据库表,在事务的帮助下我们可以执行多种 CRUD 操作。
SimpleJdbcCall 类可以被用于调用一个包含 IN 和 OUT 参数的存储过程。你可以在处理任何一个 RDBMS 时使用这个方法,就像 Apache Derby, DB2, MySQL, Microsoft SQL Server, Oracle,和 Sybase。
事务管理 一个数据库事务是一个被视为单一的工作单元的操作序列。这些操作应该要么完整地执行,要么完全不执行。事务管理是一个重要组成部分,RDBMS 面向企业应用程序,以确保数据完整性和一致性。事务的概念可以描述为具有以下四个关键属性说成是 ACID: 原子性:事务应该当作一个单独单元的操作,这意味着整个序列操作要么是成功,要么是失败的。
Spring 框架的一个关键组件是面向方面的编程(AOP)框架。面向方面的编程需要把程序逻辑分解成不同的部分称为所谓的关注点。跨一个应用程序的多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。
JDBC 框架概述 在使用普通的 JDBC 数据库时,就会很麻烦的写不必要的代码来处理异常,打开和关闭数据库连接等。但 Spring JDBC 框架负责所有的低层细节,从开始打开连接,准备和执行 SQL 语句,处理异常,处理事务,到最后关闭连接。
基于注解的配置 从 Spring 2.5 开始就可以使用注解来配置依赖注入。而不是采用 XML 来描述一个 bean 连线,你可以使用相关类,方法或字段声明的注解,将 bean 配置移动到组件类本身。 在 XML 注入之前进行注解注入,因此后者的配置将通过两种方式的属性连线被前者重写。
基于 Java 的配置 到目前为止,你已经看到如何使用 XML 配置文件来配置 Spring bean。如果你熟悉使用 XML 配置,那么我会说,不需要再学习如何进行基于 Java 的配置是,因为你要达到相同的结果,可以使用其他可用的配置。
Spring的核心是ApplicationContext,它管理bean的完整生命周期。ApplicationContext在加载bean时发布某些类型的事件。例如,ContextStartedEvent当上下文启动,并公布ContextStoppedEvent当上下文停止出版。
编写自定义事件的简单流程如下: (1)编写CustomEvent.java package com.tutorialspoint; import org.springframework.context.
一、Bean 生命周期 Spring bean的生命周期很容易理解。当bean被实例化时,可能需要执行一些初始化以使其进入可用状态。类似地,当不再需要bean并从容器中移除bean时,可能需要进行一些清理。
一、Bean定义继承 bean定义可以包含许多配置信息,包括构造函数参数,属性值和特定于容器的信息,例如初始化方法,静态工厂方法名称等。 子bean定义从父定义继承配置数据。子定义可以根据需要覆盖某些值或添加其他值。
一、自动装配模型 下面是自动连接模式,可以用来指示Spring容器使用自动连接进行依赖注入。您可以使用元素的autowire属性为bean定义指定autowire模式。 可以使用 byType 或者 constructor 自动装配模式来连接数组和其他类型的集合。
个人说明: 下面有一部分引用该链接:https://www.tutorialspoint.com/spring/spring_architecture.htm 另外一部分加上我个人的使用经验和体会 之所以参考,第一,相关概念知识回顾;第二,系统化和条理化。
任何编程技术,特别是入门示例,通常都是Hello World,在这里我也遵循这个业界公认的原则。 这里我使用的maven项目,大家如果想要演示,建议使用Eclipse(含maven插件)或Idea(含maven插件)或Eclipse+本地安装maven3以上等。
Spring容器是Spring Framework的核心。容器将创建对象,将它们连接在一起,配置它们,并管理从创建到销毁的整个生命周期。Spring容器使用DI来管理组成应用程序的组件。这些对象称为Spring Beans。
v-for的话,相比传统的jQuery的 $.each或者for循环要简洁明了的多, 比如在Jquery中我要遍历数据,通常如下几种方式: $.each(apps, function(i, app){ rows = rows + ''; rows = rows + ''+app.
错误信息:java.lang.StackOverflowError 关于这个错误的深度解析,大家可以参考这篇博文,比较详细:https://blog.csdn.net/zc375039901/article/details/79179465\ 先说说这个错误,我是怎么发生的?我的这个错误与上面我推荐的该错误原因深度解析没有多大的关系,大家可以适当了解了解。
该实战教程基于菜鸟教程,菜鸟教程可参考:http://www.runoob.com/django/django-template.html 模板语法,每个框架都有其支持的模板语法,Django的模板语法在我看来与vue.js倒有一些相似处 ,比如它们的模板语法中参数为{{parm}}。
菜鸟教程上Django安装可供参考: 参考链接: http://www.runoob.com/django/django-install.html 菜鸟教程上如果不行的话,下面博客网址可以供参考 Linux安装Python2.
Nexus之所以修改密码,是为了安全起见,个人学习的话,本地windows或者虚拟机即可,外网服务器建议将密码修改复杂点,而且强烈建议端口不要8081,最好将其改为其他的。同样也是为了安全起见。 添加用户的意义在于,公司是以团队的形式开发,而不是个人,既然是团队,团队又有可能根据业务功能拆分为不同的...
编程之代码抽象三原则,这三原则仔细推敲,与23种设计模式不无关系。 23种设计模式,在此我不做详细介绍和说明,因为我目前也正在学习,在学习设计模式的时候,有一点非常重要, 引用王阳明先生的理念“知行合一”,将理论同实践集合起来,这样就不空中楼阁了。
FreeMarker根据模板生成Java代码,光这句话,大家想必也知道它的应用了,比如流行的DRY原则,该原则的意思,可简单概述为"不要写重复的代码"。 比如Java中三层架构,数据访问层,业务逻辑层,表现层,光这三层就出现重复性的增删改查及其相关的界面代码。