Java EE

springmvc异常统一处理(一)

空扰寡人 提交于 2021-02-09 11:11:18
目录 使用 @ ExceptionHandler 注解 实现 HandlerExceptionResolver 接口 使用 @ControllerAdvice+ @ ExceptionHandler 注解 参考资料 正文 Spring 统一异常处理有 3 种方式,分别为: 使用 @ ExceptionHandler 注解 实现 HandlerExceptionResolver 接口 使用 @controlleradvice 注解 使用 @ ExceptionHandler 注解 使用该注解有一个不好的地方就是:进行异常处理的方法必须与出错的方法在同一个Controller里面。使用如下: 1 @Controller 2 public class GlobalController { 3 4 /** 5 * 用于处理异常的 6 * @return 7 */ 8 @ExceptionHandler({MyException.class}) 9 public String exception(MyException e) { 10 System.out.println(e.getMessage()); 11 e.printStackTrace(); 12 return "exception"; 13 } 14 15 @RequestMapping("test") 16 public

Java 教程

旧城冷巷雨未停 提交于 2021-02-09 08:23:54
Java 教程 Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。 Java可运行于多个平台,如Windows, Mac OS,及其他多种UNIX版本的系统。 本教程通过简单的实例将让大家更好的了解JAVA编程语言。 我的第一个JAVA程序 以下我们通过一个简单的实例来展示 Java 编程,创建文件 HelloWorld.java(文件名需与类名一致) , 代码如下: 实例 public class HelloWorld { public static void main ( String [] args ) { System . out . println ( " Hello World " ) ; } } 注: String args[] 与 String[] args 都可以执行,但推荐使用 String[] args,这样可以避免歧义和误读。 运行以上实例,输出结果如下: $ javac HelloWorld . java $ java HelloWorld Hello World 执行命令解析: 以上我们使用了两个命令 javac 和 java 。 javac 后面跟着的是java文件的文件名,例如 HelloWorld.java。 该命令用于将 java 源文件编译为 class 字节码文件,如: javac HelloWorld

SSM框架搭建-Eclipse

天大地大妈咪最大 提交于 2021-02-08 04:10:11
1、新建Maven项目 File→New→Maven Project 2、在项目上右键,点击Build Path→Congrate build path 3、编写pom.xml文件,添加依赖 < project xmlns ="http://maven.apache.org/POM/4.0.0" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" > < modelVersion > 4.0.0 </ modelVersion > < groupId > com.song </ groupId > < artifactId > ssm </ artifactId > < packaging > war </ packaging > < version > 0.0.1-SNAPSHOT </ version > < name > ssm Maven Webapp </ name > < url > http://maven.apache.org </ url > < properties > <!-- spring版本号 --> <

面试官给我挖坑:rm删除文件之后,空间就被释放了吗?

混江龙づ霸主 提交于 2021-02-07 22:44:20
在Linux,你是不是曾经天真的以为,使用rm删除一个文件,占用的空间就释放了?事情可能不是常常如人意。 产生一个指定大小的随机内容文件 我们先看一下当前各个挂载目录的空间大小: $ df -h /dev/sda11 454M 280M 147M 66% /boot 我这里挑选了其中一个结果展示(你可以选择任一挂载目录),接下来准备在 /boot 下生成一个文件。 首先我们产生一个50M大小的文件: $ dd if=/dev/urandom of=/boot/test.txt bs=50M count=1 至此,我们产生了一个50M大小的文件,再看boot下: $ df -h /dev/sda11 454M 312M 115M 74% /boot 这里你不用关心到底多了多少,你只需要关注,/boot下的文件增多了。 测试程序: #include<stdio.h> #include<unistd.h> int main(void) { FILE *fp = NULL; fp = fopen("/boot/test.txt", "rw+"); if(NULL == fp) { perror("open file failed"); return -1; } while(1) { //do nothing sleep(1); } fclose(fp); return 0; }

The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

爱⌒轻易说出口 提交于 2021-02-07 04:19:23
新建.jsp报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解决方案: 1.检查在eclipse中,有没有配置JDK: 2.检查在eclipse中,tomcat有没有配置好: 3.在导入的jar包上,右键Build Path——Configure Build Path...——在如下图操作 我的问题已经解决了: 来源: oschina 链接: https://my.oschina.net/u/4309500/blog/4019445

Eclipse报错The superclass "javax.servlet.http.HttpServlet" was not found on the Java Buil...

蓝咒 提交于 2021-02-07 02:45:16
新建Maven后,Eclipse报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path. 解决办法如下: 1 打开 Maven中央仓库 2 搜索框输入servlet进行搜索 3 选择第一个结果:Java Servlet API 4 查看某个版本依赖 5 在Maven项目pom.xml中添加该依赖 <!-- https: // mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version> 4.0 . 1 </version> <scope>provided</scope> </dependency> 来源: oschina 链接: https://my.oschina.net/u/4339899/blog/3434497

Spring实战(1)

我们两清 提交于 2021-02-06 12:43:15
本博客是参考Spring实战第四版,对其中重要的知识点进行总结。 Spring是如何简化java开发的? 答:(1)基于POJO的轻量级和最小侵入性编程;(2)通过依赖注入和面向接口来松耦合;(3)基于切面和惯例进行声明式编程;(4)通过切面和模板来减少样板式代码; 配置Spring容器三种主要的装配机制? 答:(1)在XML中显示配置;(2)在java中进行显示配置;(3)隐式的bean发现机制和自动装配; Spring从两个角度来实现自动化装配? 答:(1)组件扫描:Spring会自动发现上下文中所创建的bean;(2)自动装配:Spring自动满足bean之间的依赖; Spring依赖注入DI的功能是如何实现的? 答:任何一个有实际意义的应用都会由两个或者多个类组成,这些类之间相互协作来完成特定的业务逻辑。按照传统的做法,每个对象负责管理与自己相互协作的对象的引用,这样会导致高度耦合并难以测试。例如如下代码: 可以看到,DamselRescuingKnight在它的构造函数中创建了RescueDamselQuest。这使得DamselRescuingKnight紧密的和RescueDamselQuest耦合到了一起,因此就极大的限制了这个骑士探险的能力。而通过DI,对象的依赖关系将由系统中协调各对象的第三方组件在创建对象的时候进行设定。对象无需自己创建或者管理他们的依赖关系。

Spring Boot单元测试

余生长醉 提交于 2021-02-06 10:44:53
一个测试类包含下面两个注解: @RunWith(SpringRunner. class ) @SpringBootTest 测试类中可直接注入接口: @Resource MyServerMgr myServerMgr; 在方法上加@Test表示它是个测试方法: @Test public void query() { String result = myServerMgr.query(); log.info( "test query result is {}." , result); // 使用断言判断结果 assertEquals(result, "query result" ); } 可以通过@Before和@After注解修饰的方法,来表示测试方法执行前和执行后的行为。 @Before public void setUp() throws Exception { log.info( "Before setUp." ); } @After public void tearDown() throws Exception { log.info( "After tearDown." ); } 至此一个简单的单元测试就完成了。 Spring Mock MVC:模拟Servlet容器里的测试控制器。 下面部分介绍如何测试Spring Controller API。

Apollo应用配置

半腔热情 提交于 2021-02-06 01:28:53
Apollo工作原理 下图是Apollo架构模块的概览 各模块职责 上图简要描述了 Apollo 的总体设计,我们可以从下往上看: Config Service 提供配置的读取、推送等功能,服务对象是 Apollo 客户端 Admin Service 提供配置的修改、发布等功能,服务对象是 Apollo Portal (管理界面) Eureka 提供服务注册和发现,为了简单起见,目前 Eureka 在部署时和 Config Service 是在一个 JVM 进程中的 Config Service 和 Admin Service 都是多实例、无状态部署,所以需要将自己注册到 Eureka 中并保持心跳 在 Eureka 之上架了一层 Meta Server 用于封装 Eureka 的服务发现接口 Client 通过域名访问 Meta Server 获取 Config Service 服务列表( IP+Port ),而后直接通过 IP+Port 访问服务,同时在 Client 侧会做 load balance 、错误重试 Portal 通过域名访问 Meta Server 获取 Admin Service 服务列表( IP+Port ),而后直接通过 IP+Port 访问服务,同时在 Portal 侧会做 load balance 、错误重试 为了简化部署,我们实际上会把 Config