`

Spring备忘

 
阅读更多
  • 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
分享到:
评论

相关推荐

    Spring 备忘 (一)

    这个备忘系列将探讨 Spring 的主要组成部分和使用方法。 **IoC 容器** IoC 是 Spring 的核心概念,它通过反转对象创建和管理的控制权,使得开发者不再手动实例化对象,而是由框架负责对象的生命周期。Spring 提供...

    struts+spring+hibernate3+webligic812环境配置备忘录

    以下是基于标题“struts+spring+hibernate3+webligic812环境配置备忘录”的详细知识点解析: ### 一、环境搭建与配置 #### 1. WebLogic Server安装与配置 - **安装过程**:首先,下载WebLogic Server 8.1.2版本的...

    Spring 3.1配置文件示例(备忘)

    这篇备忘录将深入探讨 `applicationContext.xml` 文件在 Spring 3.1 中的角色、结构和常见配置元素。我们将讨论如何通过 XML 配置来管理 Bean、属性注入、AOP(面向切面编程)、事务管理和资源加载。 首先,`...

    基于SpringBoot+Vue的备忘录系统源码+sql数据库(课程大作业).zip

    基于SpringBoot+Vue的备忘录系统源码+sql数据库(课程大作业).zip 基于SpringBoot+Vue的备忘录系统源码+sql数据库(课程大作业).zip 基于SpringBoot+Vue的备忘录系统源码+sql数据库(课程大作业).zip 【资源说明】 项目...

    SSHF备忘之依赖包(struts2+spring2.5+hibernate+freemarker)

    其核心模块包括`spring-aop.jar`、`spring-beans.jar`、`spring-context.jar`、`spring-core.jar`、`spring-jdbc.jar`、`spring-orm.jar`、`spring-test.jar`和`spring-tx.jar`。`spring-web.jar`则用于Web应用。 3...

    移动平台多媒体备忘录

    【移动平台多媒体备忘录】是一个专为手机用户设计的应用程序,它允许用户在移动设备上创建、存储和管理多媒体内容的备忘录。这款应用不仅涵盖了文本记录,还支持图片、音频和视频等多媒体形式,极大地丰富了备忘录的...

    Spring2.5.3+Struts2.0.11.1+Hibernate3.2.6整合备忘 (转载)

    Spring2.5.3+Struts2.0.11.1+Hibernate3.2.6整合备忘 (转载)

    Spring_Batch系列文章汇总

    作者通过博客园分享自己在学习和应用Spring_Batch过程中的心得体会和经验教训,目的是为了备忘和引发更深入的讨论,以便收集更多的反馈和建议。希望这样的开放心态能吸引更多经验丰富的开发者参与讨论,共同推动...

    s2sh框架实例——个人备忘录系统源码

    在个人备忘录系统中,Spring可能用于创建数据访问对象(DAO)、业务服务接口及其实现,以及事务管理。 3. **Hibernate框架**:Hibernate是持久层框架,它简化了与数据库的交互。在这个系统中,Hibernate可能用于...

    备忘录模块

    在IT行业中,备忘录模块通常是指一个软件或应用程序中的功能部分,用于帮助用户记录、存储和管理重要的信息和待办事项。这个模块是许多个人和企业日常工作中不可或缺的工具,尤其是在java web环境下,它能够无缝集成...

    myfaces+ajax4jsf+spring+jpa+chartCreate 配置备忘.part1

    myfaces+ajax4jsf+spring+jpa+chartCreate 配置备忘 完整eclipse项目源代码

    Android大作业,基于bomb的云备忘录项目源码.zip

    在这个云备忘录项目中,Spring Cloud可能被用来实现服务注册与发现、API网关、负载均衡等功能,提高系统的可扩展性和可靠性。 3. **SSM框架**: SSM是Java Web开发常用的三层架构,包括Spring Framework(负责依赖...

    10备忘录系统(ssm+mysql)

    基于SSM(Spring+SpringMVC+MyBatis)框架和MySQL数据库的备忘录系统,其功能设计通常围绕着用户的日常备忘需求展开,旨在提供一个高效、便捷的信息记录和检索平台。以下是对该系统功能的详细描述: 1. 用户管理 ...

    java开发备忘录

    - **Spring框架**:依赖注入、AOP、事务管理等,简化企业级应用开发。 - **JDBC**:Java Database Connectivity,用于连接和操作数据库。 9. **Java SE新特性** - **Lambda表达式**:简化函数式编程,从Java 8...

    java ssm备忘录管理系统毕业论文.docx

    Java SSM备忘录管理系统毕业论文 本文主要介绍了基于 Java SSM 框架和 MySQL 数据库的备忘录管理系统的设计与实现。该系统旨在解决传统备忘录管理中的问题,实现信息化和网络化,提高备忘录管理的效率和经济性。 ...

    beiwanglu.rar_备忘录代码

    10. 整合部署:如果是Web应用,可能会涉及前端技术(HTML、CSS、JavaScript)、后端框架(如Django、Flask、Spring Boot)以及服务器配置。 以上是对"beiwanglu.rar_备忘录代码"可能涉及的IT知识点的详细说明。具体...

    code-memo:代码备忘录, 包含mybatis、spring、spring-boot、hbase、hive、guava、jdk等示例代码

    包括mybatis、spring、spring-boot、hbase、hive、impala、guava、jdk等 包含的模块 spring-demo mybatis-demo spring-mybatis-jetty springboot-demo opensource-utils spring-demo spring依赖注入相关demo,包括...

    大学 毕业设计 项目实训 个人备忘录系统(java SSH网站源代码)+JSP漂亮的界面控件.zip

    【标题】中的“大学毕业设计 项目实训 个人备忘录系统(java SSH网站源代码)”表明这是一个基于Java的SSH框架实现的个人备忘录系统,适用于大学生进行毕业设计或项目实训。SSH是Struts2、Spring和Hibernate三个开源...

Global site tag (gtag.js) - Google Analytics