一、Java相关概念1、Java特点
面向对象,语法简单;
在语言定义阶段、字节码检查阶段、程序执行阶段进行三级代码安全检查机制;
与平台无关:跨平台;
解释、和编译两种运行方式;
多线程:
Java内置了语言级多线程功能,支持多线程;
动态执行:
Java执行代码是在运行时动态载入的;
2、Java 虚拟机Java虚拟机(Java virtual machine,JVM),编译后的Java程序指令不直接在硬件系统的CPU中执行,而是有JVM执行。JVM的具体实现包括:
指令集(等价于CPU的指令集)
寄存器组
类文件格式
栈
垃圾收集堆
内存区。
JVM的代码格式为压缩的字节码,Java主要的类型检查是在编译时由字节码校验器完成的。JVM的实现叫做Java运行时系统或者运行时环境(runtime environment),即运行时。
3、Java虚拟机的性能在程序执行时,Hotspot对每个字节码执行进行分析,根据其执行次数,动态决定它的执行方式。多次重复执行的指令。则立即编译为可执行代码,否则,使用解释执行的方式。
4、垃圾收集内存漏洞:内存得不到释放 ...
安装
下载mongodb解压缩版并解压,目录D:\DevTools\mongodb;
上述目录下创建文件夹:data,data目录下创建目录db和目录logs;
mongodb根目录下创建文件mongo.config,内容为:123dbpath=D:\DevTools\mongodb\data\dblogpath=D:\DevTools\mongodb\data\logs\mongo.log
打开命令行,进入到D:\DevTools\mongodb\bin\目录下,执行命令:1mongod --dbpath D:\DevTools\mongodb\data
测试,在浏览器中输入:http://localhost:27017/;
配置windows服务
[管理员权限]命令行进入bin目录下,执行命令1mongod.exe --config D:\DevTools\mongodb\mongo.config --install --serviceName "MongoDB"
Centos7部署环境安装及Linux常用命令* centos系统下各文件夹的作用* centos7修改系统默认语言* centos7安装rz/sz命令* centos7安装netstat* centos7安装lsof命令* centos7下载并安装jdk并配置环境变量* centos7安装Tomcat* centos7安装Nginx* centos7安装MySQL* 解决vim的中文乱码问题* Linux常用命令
centos系统下各文件夹的作用
/: 根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
/bin:/usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
/boot: 放置linux系统启动时用到的一些文件。
/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即 ...
Swagger 是一款RESTFUL接口的、基于YAML、JSON语言的文档在线自动生成、代码自动生成的工具。
Swagger介绍官网介绍:最好的API是使用Swagger工具构建的。
Swagger是一套围绕OpenAPI规范构建的开源工具,可以帮助您设计,构建,记录和使用REST API。主要的Swagger工具包括:
Swagger Editor - 基于浏览器的编辑器,在其中编写OpenAPI规范。
Swagger UI - 将OpenAPI规范呈现为交互式API文档。
Swagger Codegen - 从OpenAPI规范生成服务端和客户端库。
官网:https://swagger.io/
官方文档:https://swagger.io/docs/specification/about/
预览配置完成后的效果
配置步骤添加依赖:pom.xml
12345678910111213141516171819202122232425262728293031<!-- swagger --><dependency> <groupId& ...
什么是Mybatis Generator MyBatis Generator(MBG)是MyBatis和iBATIS的代码生成器。能够为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或许多表),并将生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。
MyBatis Generator能够生成:
与表结构匹配的Java POJO;
MyBatis/iBATIS兼容的SQL Map XML文件;
适用于MyBatis3.x Mapper基础结构的Dao接口;
怎么配置MBG本文中使用的工具是IDEA,使用Maven构建项目。
IDE:IDEA;
构建工具:Maven;
项目结构:Spring、SpringMVC、Mybatis
pom.xml1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162&l ...
前言 缓存(Caching)可以存储经常会用到的信息,在需要的时候,直接返回这些信息。Spring对缓存的支持有两种方式:1)注解驱动的缓存;2)XML声明的缓存;本文使用第二种方式来实际进行配置。
本文内容
缓存内容详解
配置Ehcache缓存
配置Mybatis Generator
缓存内容详解 使用@EnableCaching和cache:annotation-driven/ 的工作方式是相同的,都会创建一个切面并触发Spring缓存注解的切点。根据所使用的注解以及缓存的状态,这个切面会从缓存中获取数据,将数据添加到缓存之中或者从缓存中移除某个值。在启用注解驱动的缓存时,还声明了一个缓存管理器的bean。缓存管理器是Spring缓存抽象的核心,能够与多个流行的缓存实现进行集成。
如何启用缓存1234567891011121314/** * @Description 使用@EnableCaching启用注解驱动的缓存 * @Author Mr.wang * @Date 2019/3/9 */@Configuration@Enab ...
前言 在Java项目中,在控制器、业务层、数据库操作的过程中,总是会遇到各种可控和不可控的异常需要处理,如果我们在每一个异常可能出现的地方都手动使用try{}catch{}单独处理异常的话,会产生的最大的问题就是:异常处理过程中的返回错误信息、日志打印都可能不统一,导致代码冗余和不可维护。因此我们使用统一的方式处理异常:
本文内容一、SpringMVC处理异常方式:
使用@ExceptionHandler注解:弊端:进行异常处理的方法必须与出错的方法在同一个Controller里面;
实现HandlerExceptionResolver接口:可以进行全局的异常控制。
使用@ControllerAdvice注解:使用了该注解之后,需要进行异常处理的方法与出错的方法就不必须在同一个Controller中了。@ControllerAdvice + @ExceptionHandler也可以实现全局的异常捕捉。
二、为控制器添加通知
如果要在多个控制器中处理异常,使用@ExceptionHandler注解是很有用的,但是如果多个控制器类中都会抛出异常,那么所有的控制 ...
前言 Git是一个开源的分布式版本控制系统,也是个内容管理系统(CMS),工作管理系统等。常见的网站如Github、Gitee、coding使用的都是Git。Git能够帮助我们记录每一次的修改和提交,创建分支、合并分支等。本文主要介绍Git的基本操作和Git 图形化界面
Windows版安装
下载链接:https://gitforwindows.org/
打开->安装->一路next->finish。
安装完成后空白界面右键,如下图示,出现Git GUI Here和 Git Bash Here两个选项:
点击Git Bash Here选项,弹出Git命令窗口,可以在该窗口进行Git操作;
配置使用Git命令窗口,输入以下命令配置全局参数用户名和邮箱地址,使用该参数表示本地所有Git仓库都使用这个配置:
12git config --global user.name "weyoung"git config --global user.email "ne_lucifer@163.com"
工作流 ...
前言 面向切面编程(aspect-oriented programming,AOP),前面的文章里面描述AOP主要的作用是:日志记录,性能统计,安全控制,事务处理,异常处理,权限登录等等。本文中,我们使用切面来配置日志记录,其他的使用方式基本和这个一样。
相关文章
Spring系列学习之IoC与AOP
SSM框架整合笔记(一)详细注释
SSM框架整合笔记(二)配置Druid和Webservice
SSM框架整合笔记(三)配置Tiles、FreeMarker
Spring系列学习之IoC与AOP
源码下载 该项目持续更新中,会在代码以及该文档里面详细注释和介绍。项目托管在码云开源平台上,持续更新项目源码链接:https://gitee.com/nelucifer/ssm-note,点击克隆/下载获取该项目。
本文内容一、注解 注解(Annotation):一个注解就是一个类,@interface用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数。方法的名称就是参数的名称,返回值类型就是参数的 ...
前言 在MVC开发模式下,View离不开模板引擎,在Java中模板引擎使用最多的就是JSP、Velocity和FreeMarker。在配置框架的过程中,一般的系统中的前端页面中总是有一些通用的头部、底部或者菜单栏,最原始的方法当然是为每个HTML页面添加需要引入的css或者js等公用资源,但是这种方式似乎太难以维护。
使用JSP的话,尽管JSP存在的时间很长、也特别像HTML,但是由于夹杂了各种标签库,显得特别混乱,因此在传统的单机应用中,在了解了常用的几个前端模板引擎(视图解析器),如Freemarker、Thymeleaf、Velocity、Tiles等:
Velocity:自面世以来就以语法简单著称,其写法非常接近Java语法,学习成本低,而且其简单的语法给开发人员带来了很大的自由度,能够自由发挥;
FreeMarker: 使用后缀为ftl(FreeMarker Template Language,FTL)和html 的模板,处理动态网页优势比较强,由于不能写Java代码,可以实现严格的MVC分离;
Thymeleaf: 该模板会改变普通HTML的写法, ...