Little Big Us

天道酬勤


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

JavaEE课程踩坑记录

发表于 2020-12-21 | 分类于 Spring |

踩坑记录

1. 数据库时区有关异常

  • 解决方案:添加时区参数jdbc:mysql://localhost:3306/DATABASE?serverTimezone=UTC

2. 更换Maven源

  • 解决方案:在setting.xml中加入国内源
阅读全文 »

Linux环境配置常见问题

发表于 2020-12-02 | 分类于 Linux |

Linux环境配置常见问题

1. 换清华源

1
2
$ cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup #备份
$ vim /etc/yum.repos.d/CentOS-Base.repo #将内容修改如下
阅读全文 »

SpringMVC——文件上传、异常处理、拦截器

发表于 2020-11-11 | 分类于 Spring |

SpringMVC——文件上传、异常处理、拦截器

1. 异常处理

系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息, 后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。 系统的 dao、service、controller 出现都通过 throws Exception向上抛出,最后由 springmvc 前端 控制器交由异常处理器进行异常处理。

1. 处理方式1

自定义异常处理类,并实现HandlerExceptionResolver接口。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Component
public class SysExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
//获取异常
SysException ex = null;
if(e instanceof SysException){
ex = (SysException) e;
}else{
ex = new SysException("系统正在维护");
}

//创建ModelAndView对象
ModelAndView mv= new ModelAndView();
mv.addObject("errorMsg",e.getMessage());
mv.setViewName("error");
return mv;
}
}
阅读全文 »

SpringMVC——参数和返回值

发表于 2020-11-11 | 分类于 Spring |

Spring MVC——参数和返回值

0. 介绍

SpringMVC 是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级 Web 框架,属于 Spring FrameWork的后续产品,已经融合在 Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。

它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful编程风格的请求。

Spring MVC的执行流程如下

1. 常用注解

@RequestMapping:建立请求URL和处理方法之间的对应关系,作用在类或者方法上。

@RequestParam:把请求中的指定名称的参数传递给控制器中的形参赋值

举例:

1
2
3
4
5
6
@RequestMapping("/useRequestParam")
public String useRequestParam(@RequestParam("name")String username,
@RequestParam(value="age",required=false) Integer age){
System.out.println(username+","+age);
return "success";
}

@RequestBody:直接以key=value的形式获取请求体内容(String类型)或者Java对象。用于POST请求。

@PathVaribale:用于绑定 url中的占位符。例如:请求 url 中 /delete/{id},这个{id}就是 url 占位符。

@ModelAttribute:出现在方法上,表示当前方法会在控制器方法之前执行。也可以出现在参数上,获取指定的数据给参数赋值。

应用场景:当表单提交数据不是完整的实体类数据时,保证没有提交数据的字段使用数据库对象原来的数据。

阅读全文 »

Mybatis笔记

发表于 2020-11-11 |

MyBatis笔记

0. 概述

Mybatis是一个优秀的基于Java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement等繁杂的过程。

官方网站:https://mybatis.org/mybatis-3/zh/index.html

Mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过Java对象和statement 中 sql的动态参数进行映射生成最终执行的 sql语句,最后由 Mybatis 框架执行 sql并将结果映射为 java 对象并 返回。

1. 配置文件

1. 主配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--引入外部的properties文件,指定一些属性值-->
<properties resource="jdbcConfig.properties"></properties>
<!--取类的别名-->
<typeAliases>
<typeAlias type="com.billychen.domain.User" alias="User"></typeAlias>
<typeAlias type="com.billychen.domain.Account" alias="Account"></typeAlias>
<!--以下是批量别名方式,直接给出扫描包下的所有类,别名为类名-->
<package name="com.billychen.domain"/>
</typeAliases>

<!--配置环境-->
<environments default="mysql">
<!--配置mysql环境-->
<environment id="mysql">
<!--配置事务类型-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源(连接池)-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>

<mappers>
<!--<mapper resource="com/billychen/dao/IUserDao.xml"></mapper>-->
<!--指定dao接口所在的包,不需要再写mapper标签了-->
<package name="com.billychen.dao"></package>
</mappers>
</configuration>
阅读全文 »

Spring——事务

发表于 2020-09-21 | 分类于 Spring |

Spring——事务

1. 基于XML的声明式事务控制

  1. 配置事务管理器

  2. 配置事务的通知

    属性
    id: 事务通知的唯一标识
    transaction-manager给事务通知提供一个事务管理器的引用

  3. 配置AOP中的切入点表达式

  4. 建立事务通知和切入点表达式的关系

  5. 配置事务的属性(在事务通知tx:advice标签内部配置)

阅读全文 »

Spring——AOP

发表于 2020-09-17 | 分类于 Spring |

Spring AOP

0. 思想

运用动态代理的方式对核心业务类的方法进行增强,对核心逻辑和非核心逻辑进行隔离,把非核心逻辑织入到核心业务逻辑之中。开发人员在开发时可以专注于核心业务逻辑,使各个业务逻辑之间的耦合度降低,提高程序的可复用性。

1. AOP的术语和细节

  1. Jointpoint(连接点)

    被拦截的方法,通常是业务层的所有方法。

  2. Pointcut(切入点)

    并不是所有业务层的方法都需要被拦截增强。那些需要被增强的方法是切入点。

  3. Advice(通知/增强)

    指拦截到的Jointpoint之后需要做的事情。通知包括前置通知、后置通知、异常通知、最终通知、环绕通知。

  4. Taeget(目标对象)

    被代理的对象。

  5. Weaving(织入)

    是指把增强应用到目标对象来创建代理对象的过程。

  6. Proxy(代理)

    一个类被AOP织入增强后,产生的一个结果代理类。

  7. Aspect(切面)

    是切入点和通知的结合。(需要手动配置)

阅读全文 »

Spring——IoC容器

发表于 2020-09-10 | 分类于 Spring |

Spring IoC容器

1.思想

bean对象的创建、依赖关系交给Ioc容器来管理,无需手动new对象,方便解耦,便于开发。

2.IoC容器

Spring容器的最顶层接口是BeanFactory,实际开发中常用ApplicationContext。

两个接口的区别:

  • ApplicationContext:立即加载。读取配置文件后马上创建对象放入容器。
  • BeanFactory:延迟加载。什么时候根据id获取对象,什么时候才真正创建对象。

ApplicationContext的三个常用实现类

  • ClassPathApplicationContext:加载类路径下的配置文件。

  • FileSystemXmlApplicationContext:加载磁盘任意路径下的配置文件。

  • AnnotationConfigApplicationContext:读取注解 创建容器。

3.Bean

1.创建bean的三种方式

  1. 使用默认的无参构造器(如果没有无参构造器,则报错)
  2. 使用静态工厂的静态方法创建对象
  3. 使用实例工厂的方法创建对象
阅读全文 »

Git学习

发表于 2020-01-30 | 分类于 Git |

基本结构

Git是一个分布式版本控制系统,分为工作区,版本库和远程仓库。

工作区是本地能看到的目录,版本库可分为暂存区和本地仓库,远程仓库被置于远程,可由Github托管。

把本地文件放入本地仓库分两步进行:

第一步:git add将工作区的文件添加到暂存区;

第二步:git commit将暂存区的所有内容提交到本地仓库(当前分支)

接下来,在本地仓库和远程仓库已经关联的条件下,即可使用git push推送当前分支到远程。

阅读全文 »

Win10 + Ubuntu 16.04 双系统安装步骤以及问题的解决

发表于 2020-01-19 | 分类于 Linux |

Win10 + Ubuntu 16.04 双系统安装步骤以及问题的解决

双系统安装步骤

步骤一:Ubuntu 16.04系统盘的制作

  1. 下载Ubuntu镜像
    推荐使用清华大学开源软件镜像站,选择ubuntu-16.04.6-desktop-amd64.iso下载即可
  2. 下载UltraSO,使用U盘制作启动盘
    1. 选择文件->打开,打开Ubuntu的iso镜像。
    2. 在左下角区域选择U盘,点击启动->写入硬盘映像。
    3. 在弹出的对话框中选择写入方式为hdd或hdd+,对硬盘格式化后再点击写入。
    4. 写入完毕后启动盘制作完成。

步骤二:分区与安装

  1. 使用Windows磁盘管理进行分区。
    通过WIN + X进入磁盘管理,右键点击有空余空间的磁盘,选择压缩卷,一般大小可设置为50G。此后的Ubuntu系统便安装在此区域。
  2. 关闭Win10系统的快速启动和安全启动。
    具体操作可参考win10安装ubuntu18.04 LTS双系统
  3. 将启动盘插入电脑,重启电脑,进入BIOS,将U盘设置为第一启动项。
  4. 按照提示信息进行安装。
    • 注意:在分区时,选择自定义模式。一般来说,只需要划分两个区,即swap区(充当虚拟内存,分区格式为swap)和主分区(挂载点/,安装系统和软件,分区格式为ext4)
  5. 安装完成后,拔下U盘,重启电脑,选择进入Ubuntu系统。至此,双系统安装已经完成。
阅读全文 »
Chen

Chen

Wuhan University

10 日志
3 分类
8 标签
GitHub E-Mail
© 2020 — 2021 Chen
Powered by Hexo
|
Theme — NexT.Pisces v5.1.4