- 博客(21)
- 资源 (8)
- 收藏
- 关注
原创 新生代的内存回收机制和空间分配担保
新生代的内存回收机制和空间分配担保新生代内存回收机制空间分配担保新生代内存回收机制对象被创建时,内存的分配首先发生在新生代(大对象可以直接被创建在老年代,可以设置JVM参数来确定多大的对象可以直接被创建在老年代),大部分的对象在创建后很快就不再使用,因此很快变得不可达,于是被新生代的GC机制清理掉(IBM的研究表明,98%的对象都是很快消亡的),这个GC机制被称为Minor GC或叫Young GC。注意,Minor GC并不代表新生代内存不足,它事实上只表示在Eden区上的GC,表示的应该仅是Ede
2020-11-19 13:20:57
479
1
转载 自定义LocaleResolver问题
今天在学习SpringBoot框架时,自定义LocaleResolver出错,故记录一下。首先:自定义LocaleResolver的时候,在注册自定义LocaleResolver的过程中要设置bean的name为localeResolver,否则自定义的LocaleResolver不会生效。原理参考: 如下链接个人理解为:在DispatcherServlet类中有初始化LocaleResolver的方法initLocaleResolver,它在容器中找ID为LOCALE_RESOLVER_BEAN_N
2020-09-18 21:52:39
612
原创 Servlet,Session和Cookie以及属性作用域
Servlet,Session和CookieServletServlet的生命周期Servlet生命周期中的三个重要时刻ServletConfig和ServletContextSession与Cookie属性作用域ServletServlet的生命周期Servlet的生命周期很简单,只有一个主要的状态:初始化。如果Servlet没有初始化,那么要么正在初始化(运行其构造函数或init()方法),正在撤销(运行destroy方法),要么就是还不存在。Web容器首先加载Servlet类,然后初始化Ser
2020-09-17 19:17:17
303
转载 @AliasFor 使用规则
@AliasFor 使用规则注解的含义注解的使用方法互为别名继承时使用注解的含义顾名思义 @AliasFor 表示别名,它可以注解到自定义注解的两个属性上,表示这两个互为别名,也就是说这两个属性其实同一个含义。同时若自定义注解继承了另一个注解,要想让调用方能够设置继承过来的属性值,就必须在自定义注解中重新定义一个属性,同时声明该属性是父注解某个属性的别名。注解的使用方法互为别名在下面的例子中,value属性和location属性互为别名,此时使用的时候可以指定属性名来设置属性值,也能使用缺省属性
2020-09-11 16:18:11
921
原创 Spring注解:声明式事务
声明式事务使用注解开发主要有三个步骤:给方法上标注@Transactional注解,表示当前方法是一个事务方法在配置文件上使用@EnableTransactionManagement开启基于注解的事务管理功能配置事务管理器来控制事务(即在容器中注册事务管理器),代码如下:@Beanpublic PlatformTransactionManager transactionManager() throws Exception{ return new DataSourceTransactionMa
2020-09-11 13:34:20
95
原创 Spring注解:AOP
Spring注解(AOP)AOPAOP原理@EnableAspectJAutoProxyAOPAOP:面向切面编程,指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式,它的底层是动态代理。AOP的实现步骤:1.导入AOP模块spring-aspects2.定义一个业务逻辑类3.定义一个日志切面类,切面类里需要动态感知业务运行到哪里,然后执行。通知方法包括:前置通知(@Before):在目标方法运行之前运行后置通知(@After):在目标方法运行结束之后运行,不管方法正
2020-09-10 22:01:11
411
转载 Ubuntu下切换JDK版本
Ubuntu下切换JDK版本1.安装jdk2.添加java可选配置项3.切换Java版本多版本JDK是可以共存的,只需要使用update-alternatives工具就可以随时将它们切换。下面描述安装openjdk和oracle jdk以及切换版本的过程。1.安装jdk可以直接用apt命令安装jdk,安装完毕之后查询其安装位置,以jdk11为例:$ dpkg -L openjdk-11-jdk$ ls /usr/lib/jvm/java-11-openjdk-amd642.添加java可选配
2020-09-10 15:28:07
678
原创 Spring注解:IoC
Spring注解组件注册@Configuration和@Bean@ComponentScan@Scope@Conditional组件注册@Configuration和@Bean采用注解开发,需要一个配置类。@Configuration告诉Spring某个类是配置类,在配置类中对Spring进行配置。@Bean为容器中注入一个Bean,类型为返回值的类型,id默认为方法名。也能为注解添加参数来自定义类型。@Configurationpublic class MainConfig { //可以使
2020-09-04 11:09:21
272
原创 MyBatis
MyBatis入门步骤这篇文章是学习动力节点MyBatis教程所做的笔记,仅供参考.入门步骤新建数据库表加入maven的mybatis坐标和MySQL驱动的坐标创建实体类保存表中的一行数据创建持久层的dao接口,定义操作数据库的方法创建一个mybatis使用的xml配置文件:sql映射文件,用来写sql语句,一般一个表一个sql映射文件创建mybatis的主配置文件,一个项目一个主配置文件,主配置文件提供了数据库的连接信息和sql映射文件的位置信息创建使用mybatis类,通过mybat
2020-08-16 20:20:22
152
转载 SpringMVC 解决Jackson乱码问题
@TOC摘自此链接,适用于Jackson的乱码处理 <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-ar
2020-08-12 11:56:01
578
转载 SpringMVC 自定义过滤器
SpringMVC 自定义过滤器网上的大佬的代码,摘自此链接,适用于get和post请求,全部乱码的过滤器import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import javax.servlet.http.HttpServletResponse;import java.io.IOException;imp
2020-08-12 10:02:12
875
转载 SpringMVC执行原理
SpringMVC执行原理本文摘自狂神说SpringMVC1.下图为SpringMVC的一个较完整的流程图,实线表示SpringMVC框架提供的技术,不需要开发者实现,虚线表示需要开发者实现。2.简要分析执行流程DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。我们假设请求的url为 : http://localhost:8080/SpringMVC/hello,此url拆分成三部分:htt
2020-08-11 11:05:42
125
原创 日志及其他
日志及其他Spring5.0改动过程@Nullable注解函数式风格创建对象Spring5支持整合JUnit5Spring整合JUnit4Spring整合JUnit5Spring5.0改动Spring5框架自带了通用的日志封装。Spring5移除了Log4jConfigListener,官方建议使用log4j2,因为框架整合了log4j2.过程引入jar包(log4j2和slf4j相关包)创建log4j2.xml文件,名字固定,不能更改,格式也基本类似。@Nullable注解@Nullab
2020-07-28 18:26:38
98
原创 事务
事务事务添加的位置Spring进行事务管理操作的方式Spring事务管理API注解方式实现声明式事务管理事务的传播行为事务的隔离级别声明式事务管理的参数配置XML声明式事务管理完全注解开发事务添加的位置一般事务添加到三层结构(Web层,Service层,Dao层)中的Service层(业务逻辑层)中。Spring进行事务管理操作的方式编程式事务管理(不常用,不方便,通过try,catch方法,会造成代码臃肿)声明式事务管理(常用),包括注解式(常用)和XML配置文件式在Spring中进行声明
2020-07-28 15:07:07
97
原创 AOP
AOPAOP原理AOP原理AOP底层使用动态代理,分为两种情况:第一种是有接口的情况,使用JDK的动态代理。通过创建接口实现类代理对象,增强类的方法。第二种是没有接口的情况,这个时候需要使用CGLIB动态代理。此时则是创建当前类子类的代理对象,而非创建实现类的代理对象。...
2020-07-24 18:18:43
150
原创 IoC
Spring中IoC容器的两种实现方式BeanFactoryBeanFactory是IoC容器的基本实现,是Spring内部的使用接口,不提供开发人员使用。BeanFactory在加载配置文件的时候不会创建对象,而是在获取对象(getBean)的时候才去创建对象。ApplicationContext是BeanFactory的子接口,它提供更多更强大的功能,一般由开发人员进行使用。它在加载配置文件的时候就会把配置文件中的对象进行创建。...
2020-07-22 09:25:15
123
转载 NLP英文词形还原
NLP英文词形还原看了一篇文章感觉写的不错:https://www.cnblogs.com/jclian91/p/9898511.html
2020-05-30 20:17:54
612
原创 使用Django实现MongoDB的CRUD功能
使用Django实现MongoDB的DRUD功能使用Pycharm创建Django项目创建新APP在上方菜单栏中选择创建在下方Terminal中创建在创建新项目时创建注意使用MongoDB安装mongoengine修改settings.py设计数据库表设计前端页面加载前端页面配置views.py配置urlsRESTful接口RESTful接口的实现注意师兄师姐毕业,交接项目,我负责对数据库部分的了解和应用。项目整体使用springboot,数据库端使用MongoDB,使用django对CRUD进行封装,并
2020-05-25 16:21:04
275
原创 Linux学习记录(二)
Linux学习记录(二)文本编辑器vimvim常用操作vim使用技巧文本编辑器vimvim常用操作1.vim工作模式:2.插入命令a:在光标所在字符后插入A:在光标所在行尾插入i:在光标所在字符前插入I: 在光标所在行行首插入o:在光标下插入新行O:在光标上插入新行3.定位命令:set nu 设置行号:set nonu 取消行号:n 到第n行...
2020-04-19 21:25:12
187
转载 Linux下JDK到底应该安在哪里
Linux下JDK到底应该安在哪里?1.Linux目录结构2.配置环境变量2.1 /etc/profile2.2 ~/.profile3.3 /etc/profile.d/java.sh1.Linux目录结构即使这是个菜鸟级的问题,也经常难住老鸟。我就见过很资深的程序员把JDK不合适地安装到/home目录下。虽然不一定有最正确的安装位置,但一定有不适当的安装位置。为了确定我们到底应该把JDK安...
2020-04-17 20:10:57
276
原创 Linux学习记录(一)
Linux学习记录Linux常用命令文件处理命令权限管理命令1.改变文件权限2.Linux中的rwx权限3.改变所有者和所属组4.权限管理命令文件搜索命令1.find命令2.locate命令3.which,whereis,grep命令帮助命令用户管理命令压缩/解压命令网络命令Linux常用命令在学Linux的过程中随学随记一些知识点,为了简单易查,于是将知识点记在这里,以便以后参考,随时更新~...
2020-04-17 19:41:44
212
JAVA毕业设计指南与项目实践.zip
2019-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人