您正在查看:标签 JAVA 下的文章

使用HotSwapAgent实现SpringBoot热加载

众所周知,IDEA 自带的热加载只支持方法内的热加载,而使用 HotSwapAgent 不仅支持方法内的热加载,并且可实现新增方法的热加载,甚至是新增类的热加载,可谓是提高开发效率的神器 真棒.png
本文主要介绍在 IDEA 下使用 HotSwapAgent 来进行 SpringBoot 下的热部署;
接下来我们开始配置 HotSwapAgent

1 安装 DCEVM

DCEVM 是个JDK的插件,提供类似 JRebel 的热加载功能,能够在运行时重新定义加载的类,实现“热加载、热插拔、热部署”,而 HotSwapAgent 插件则是实现了 Servlet 程序的热加载功能,并且 DCEVM + HotSwapAgent 开源免费,更适合广大开发者使用。
安装 DCEVM 需要和 JDK 版本相对应,你需要先确定自己的 JDK 版本是否是 DCEVM 所支持的版本
https://github.com/dcevm/dcevm/releases
写此文时,DCEVM 支持的最新 JDK 版本是Java 8u181
如果你的JDK版本不被支持,则需要去 Oracle Java Archive 这个页面下载对应版本 JDK 并安装
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
下载 JDK 需要自备 Oracle 的账号
下载并安装好对应版本 JDK 后,我们再次来确定 JDK 版本为对应版本
2022-02-24T13:42:56.png

- 阅读剩余部分 -

Git分布式版本控制工具

1 Git概述

1.1 Git历史

Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。

他们对新的系统制订了若干目标:

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

1.2 Git与SVN对比

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。

集中式版本控制工具缺点:

- 阅读剩余部分 -

mybatis03 - 多表查询、简单的SSM整合

1 Mybatis多表查询

1.1 一对一查询

1.1.1 一对一查询的模型

用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户

一对一查询的需求:查询一个订单,与此同时查询出该订单所属的用户

图片1.png

1.1.2一对一查询的语句

对应的sql语句:SELECT *,o.id oid FROM orders o, USER u WHERE o.uid = u.id;

查询的结果如下:

图片2.png

- 阅读剩余部分 -

mybatis02 - 核心配置文件深入

1 Mybatis的Dao层实现

1.1 传统开发方式

1.1.1 编写UserDao接口
public interface UserDao {
    List<User> findAll() throws IOException;
}
1.1.2 编写UserDaoImpl实现
public class UserDaoImpl implements UserDao {
    public List<User> findAll() throws IOException {
        InputStream resourceAsStream = 
                    Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new 
                    SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        List<User> userList = sqlSession.selectList("userMapper.findAll");
        sqlSession.close();
        return userList;
    }
}
1.1.3 测试传统方式
@Test
public void testTraditionDao() throws IOException {
    UserDao userDao = new UserDaoImpl();
    List<User> all = userDao.findAll();
    System.out.println(all);
}

- 阅读剩余部分 -

mybatis01 - 简介和快速入门

1 Mybatis简介

1.1原始jdbc操作(查询数据)

图片1.png

1.2原始jdbc操作(插入数据)

图片2.png

- 阅读剩余部分 -

springmvc03 - 文件上传、拦截器、异常处理

今日内容

  • SpringMVC的文件上传
  • SpringMVC的拦截器
  • SpringMVC异常处理机制

1 SpringMVC的文件上传

1.SpringMVC的请求-文件上传-客户端表单实现

文件上传客户端表单需要满足:

表单项type=“file”

表单的提交方式是post

表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data”

<form action="${pageContext.request.contextPath}/user/quick22" method="post" enctype="multipart/form-data">
    名称<input type="text" name="username"><br/>
    文件1<input type="file" name="uploadFile"><br/>
    <input type="submit" value="提交">
</form>

- 阅读剩余部分 -

springmvc02 - 请求和响应

1 SpringMVC的数据响应

1.SpringMVC的数据响应-数据响应方式

1)页面跳转

直接返回字符串

通过ModelAndView对象返回

2 )回写数据

直接返回字符串

返回对象或集合

2.SpringMVC的数据响应-页面跳转-返回字符串形式

1.jpg

- 阅读剩余部分 -

springmvc01 - Spring与Web环境集成

1 Spring与Web环境集成

1.1 ApplicationContext应用上下文获取方式

应用上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,但是每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(spring配置文件) ,这样的弊端是配置文件加载多次,应用上下文对象创建多次。

在Web项目中,可以使用ServletContextListener监听Web应用的启动,我们可以在Web应用启动时,就加载Spring的配置文件,创建应用上下文对象ApplicationContext,在将其存储到最大的域servletContext域中,这样就可以在任意位置从域中获得应用上下文ApplicationContext对象了。

1.2 Spring提供获取应用上下文的工具

上面的分析不用手动实现,Spring提供了一个监听器ContextLoaderListener就是对上述功能的封装,该监听器内部加载Spring配置文件,创建应用上下文对象,并存储到ServletContext域中,提供了一个客户端工具WebApplicationContextUtils供使用者获得应用上下文对象。

所以我们需要做的只有两件事:

①在web.xml中配置ContextLoaderListener监听器(导入spring-web坐标)

②使用WebApplicationContextUtils获得应用上下文对象ApplicationContext

- 阅读剩余部分 -

spring04 - JdbcTemplate && 声明式事务

1 JdbcTemplate基本使用

1.1.JdbcTemplate基本使用-概述

JdbcTemplate是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和HibernateTemplate,操作nosql数据库的RedisTemplate,操作消息队列的JmsTemplate等等。

1.2.JdbcTemplate基本使用-开发步骤

①导入spring-jdbc和spring-tx坐标

②创建数据库表和实体

③创建JdbcTemplate对象

④执行数据库操作

1.3.JdbcTemplate基本使用-快速入门代码实现

导入spring-jdbc和spring-tx坐标

- 阅读剩余部分 -

spring03 - Aop面向切面编程

1.Spring 的 AOP 简介

1.1 什么是 AOP

AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。

AOP 是 OOP 的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

1.2 AOP 的作用及其优势

作用:在程序运行期间,在不修改源码的情况下对方法进行功能增强

优势:减少重复代码,提高开发效率,并且便于维护

1.3 AOP 的底层实现

实际上,AOP 的底层是通过 Spring 提供的的动态代理技术实现的。在运行期间,Spring通过动态代理技术动态的生成代理对象,代理对象方法执行时进行增强功能的介入,在去调用目标对象的方法,从而完成功能的增强。

1.4 AOP 的动态代理技术

常用的动态代理技术

JDK 代理 : 基于接口的动态代理技术

cglib 代理:基于父类的动态代理技术

图片1.png

- 阅读剩余部分 -

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5