-
spring - 统一的异常处理
@Controller
public class BaseController {
protected final static Logger logger = LoggerFactory
.getLogger("controller");
@ResponseBody
@ExceptionHandler(Exception.class)
public RespBody exceptionHandler(Exception ex) {
return RespBody.error("exception", ex.getMessage());
}
}
如果Controller中没有@ExceptionHandler异常处理, 则会从父类中查找.
- spring4 - @RestController
-
spring4 - 泛型限定式依赖注入
/** Bean */
public class User implements Serializable {
private Long id;
private String name;
}
public class Organization implements Serializable {
private Long id;
private String name;
}
/** Repository */
public abstract class BaseRepository<M extends Serializable> {
public void save(M m) {
System.out.println("=====repository save:" + m);
}
}
@Repository
public class UserRepository extends BaseRepository<User> {
}
@Repository
public class OrganizationRepository extends BaseRepository<Organization> {
}
/** Service */
public abstract class BaseService<M extends Serializable> {
@Autowired
protected BaseRepository<M> repository; // 在这里通过泛型,实现了自动依赖注入
public void save(M m) {
repository.save(m);
}
}
@Service
public class UserService extends BaseService<User> {
}
@Service
public class OrganizationService extends BaseService<Organization> {
}
-
spring4 - AsyncRestTemplate
/** Server */
@RestController
public class UserController {
private UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
@RequestMapping("/api")
public Callable<User> api() {
System.out.println("=====hello");
return new Callable<User>() {
@Override
public User call() throws Exception {
Thread.sleep(10L * 1000); //暂停两秒
User user = new User();
user.setId(1L);
user.setName("haha");
return user;
}
};
}
}
/** Client */
public static void main(String[] args) {
AsyncRestTemplate template = new AsyncRestTemplate();
//调用完后立即返回(没有阻塞)
ListenableFuture<ResponseEntity<User>> future = template.getForEntity("http://localhost:9080/spring4/api", User.class);
//设置异步回调
future.addCallback(new ListenableFutureCallback<ResponseEntity<User>>() {
@Override
public void onSuccess(ResponseEntity<User> result) {
System.out.println("======client get result : " + result.getBody());
}
@Override
public void onFailure(Throwable t) {
System.out.println("======client failure : " + t);
}
});
System.out.println("==no wait");
}
- @Conditional
相关推荐
NULL 博文链接:https://jackyin5918.iteye.com/blog/1912089
struts+spring+hibernate3+webligic812环境配置备忘录
NULL 博文链接:https://java-doom.iteye.com/blog/2126725
Spring2.5.3+Struts2.0.11.1+Hibernate3.2.6整合备忘 (转载)
日常SSHF开发中,经常因为Jar包问题头痛。本文档收集了struts2+spring2.5+hibernate+freemarker 所用到的最基本依赖包,对解决Jar包问题非常有帮助。
myfaces+ajax4jsf+spring+jpa+chartCreate 配置备忘 完整eclipse项目源代码
包括mybatis、spring、spring-boot、hbase、hive、impala、guava、jdk等 包含的模块 spring-demo mybatis-demo spring-mybatis-jetty springboot-demo opensource-utils spring-demo spring依赖注入相关demo,包括...
这是个人练习的spring配置定时任务方面的例子,备忘用,不建议下载
2021年Spring该存储库将(希望)跟踪我在2021年Spring学期的笔记。 我还将尝试记录所做的任何修订以供将来参考。最初设定每个文件夹都包含一个班级的相关注释。 注释使用Markdown编写,并在必要时添加LaTeX。 编辑器...
基于SpringBoot+Vue的备忘录系统源码+sql数据库(课程大作业).zip 基于SpringBoot+Vue的备忘录系统源码+sql数据库(课程大作业).zip 基于SpringBoot+Vue的备忘录系统源码+sql数据库(课程大作业).zip 【资源说明】 项目...
spring mvc freemarker 自定义标签demo spring mvc 通过自定义的标签在jsp页面调用,初学,记录下做个备忘
这是spring 测试的示例,个人备忘用!
基于springboot+vue的备忘录管理系统源码+数据库文件(课程设计).zip已获导师指导并通过的97分的高分大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 基于springboot+vue...
在应用程序网络中添加有用的ReactJ(前端)和Spring Boot(后端)的修饰符和高级注释。 目录 Propos du Projet 事前和事后证明书均以书面形式发表,有能力的人可享有恢复原状的权利。 注释中的“有附加条件的注释...
Android大作业,基于bomb的云备忘录项目源码.zip
开机 我介绍 Spring Boot 的演讲的存储库。 大多数谈话都是实时代码,所以这些实际上只是保存点和备忘单。
2018Spring网络应用程序 我们将使用react来构建一个习惯跟踪应用程序(例如,您可以使用此Web应用程序跟踪您的新年愿望,其中一个是学习React吗?) 技术: 资源: 备忘单: es6 React 轴距 Lodash 日程 1级 ...
前端大作业基于SpringBoot + Vue的备忘录系统源码+数据库 项目结构 sql => 数据库 memo-java => 后端 memo-vue => 前端 开发环境 MySQL 5.7 JDK 8 技术栈 前端 vue2 Element UI 后端 SpringBoot MybatisPlus
本文还是使用VUE+ Spring Boot的方式来进行管理的,但在系统建设过程当中也考虑了许许多多信息安全的保护。 管理员具有系统用户管理、客户服务管理、城市管理、操作员管理、联系人管理、备忘录管理、客户管理、业务...