- 浏览: 25571 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (21)
- JAVA (10)
- 个人收集 (0)
- Dwr Reverse Ajax (1)
- 图片修改 (0)
- Linux grep (0)
- java Annotation (1)
- restfull demo (1)
- CF学习 (1)
- 计算机词汇 (1)
- Tomcat Manager (0)
- Linux (1)
- Hibernate demo (0)
- //joda-time (0)
- Log4j2 (1)
- Androidpn-Server (1)
- 概念相关总结 (0)
- Info (0)
- Mybatis (0)
- 高并发 (0)
- Nats安装步骤 (1)
- Linux 命令 (0)
- Time33哈希算法 (0)
- actor (0)
- 跟我学Shiro (0)
- mina demo (1)
- Lock实现同步与并发 (1)
- Spring Annotation (0)
- Command Line (0)
- setting.xml 全局jdk版本设置 (1)
- Spring配置 (0)
- spring web flow配置 (0)
- spring web demo (1)
- Spring MVC Request get (1)
- Sorted Java (1)
- Spring杂记 (0)
- test (0)
- test-Juniper network (1)
- GRE URL (0)
- Java 实现RFC2898 (1)
- Mockito (1)
- Linux ssh建立信任关系 (1)
- SVN config (0)
最新评论
花点时间弄的一个url和方法映射的小Demo,先记录在此,便于后面使用。
Note:使用场景:Mina,Netty的Client->Server请求映射关系。 后期有时间再加上一个类级的映射,以达到模块划分之间的划分更清晰。
1、Mapper 映射关系的Annotation类。
2、UserService 这里用于测试的案例业务类。
3、Test 用于测试的类。
Note:使用场景:Mina,Netty的Client->Server请求映射关系。 后期有时间再加上一个类级的映射,以达到模块划分之间的划分更清晰。
1、Mapper 映射关系的Annotation类。
package com.runant.demo; import java.lang.annotation.Retention; import java.lang.annotation.Target; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.ElementType; /** * @author ping * */ @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Mapper { String value() default ""; }
2、UserService 这里用于测试的案例业务类。
package com.runant.demo; /** * @author ping * */ @Mapper(value = "/user") public class UserService { @Mapper(value = "/getUser") public String getUser(String userName) { return "Hello...." + userName; } @Mapper(value = "/login") public boolean login(String userName, String password) { System.out.println("Login user-name:" + userName + ",password:" + password); return "admin".equals(userName) && "123456".equals(password); } public boolean delete(String userName) { System.out.println("Delete user-name:" + userName); return true; } }
3、Test 用于测试的类。
package com.runant.demo; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; /** * @author ping * */ public class Test { /** * @param args * @throws InvocationTargetException * @throws IllegalAccessException * @throws IllegalArgumentException */ public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { // String url = "/user/getUser"; String url = "/user/login"; String params = "Test ,Hahahha~!~"; Map<String, Invoker> urlMapping = new HashMap<String, Invoker>(); UserService service = new UserService(); Mapper topMapper = service.getClass().getAnnotation(Mapper.class); String topUrl = topMapper != null ? topMapper.value() : ""; Method[] methods = service.getClass().getDeclaredMethods(); for (Method m : methods) { Mapper subMapper = (Mapper) m.getAnnotation(Mapper.class); if (subMapper != null) { urlMapping.put(topUrl + subMapper.value(), new Invoker(service, m)); } } Invoker invoker = urlMapping.get(url); // Object result = invoker.execute(params); Object result = invoker.execute("Leo","123"); System.out.println(result); result = invoker.execute("admin","123456"); System.out.println(result); } private static class Invoker { private Method method; private Object obj; public Invoker(Object obj, Method method) { this.obj = obj; this.method = method; } public Object execute(Object... args){ try { return this.method.invoke(obj, args); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return null; } } }
- Test.zip (5.9 KB)
- 下载次数: 0
发表评论
-
Mockito
2014-08-13 14:15 449PowerMockito.mockStatic -
Java 实现RFC2898
2014-08-07 16:49 851package crypto.test; public ... -
Spring杂记
2014-06-19 14:50 0获取Cookie WebUtils.getCookie ... -
spring web demo
2014-05-27 17:27 569spring web demo -
Command Line
2014-05-14 16:14 0可以的, 给你一个简单的ping google的吧 ... -
Spring
2014-05-06 12:31 0Autowired @Autowired @Auto ... -
Time33哈希算法
2014-04-09 11:18 0Time33哈希算法 unsigned long ... -
Androidpn-Server
2014-02-28 10:13 6061.更改Eclipse JDK编译环境(将目录jre改成j ... -
Log4j2 demo
2014-02-17 10:07 2348Maven configuration <depe ... -
java日期计算joda-time
2014-02-13 09:24 0public boolean isAfterPayDay(Da ... -
restfull demo
2014-01-14 17:35 537restfull demo -
Dwr 官方Reverse Ajax Demo
2012-09-18 11:29 948Dwr Reverse Ajax 官方Demo简化,csdn那 ... -
JAVA实现AES加密解密工具类
2012-06-30 13:46 5076package com.runant.util.encrpt. ... -
JAVA实现3DES加密解密
2012-06-30 13:36 4683代码如下: package com.runant.util. ...
相关推荐
7. **组件扫描**:Spring的`@Component`、`@Service`、`@Repository`和`@Controller`等注解用于标记组件类,配合`@ComponentScan`可以自动检测并注册这些类到IoC容器,从而实现bean的自动创建和依赖注入。...
在本"Spring MVC注解Demo"中,我们将深入探讨如何利用注解简化Spring MVC的配置和控制器的实现,使其更适合初学者快速上手。 在Spring MVC中,注解的使用大大减少了XML配置,使得代码更加简洁且易于理解。以下是...
《Spring 4.0框架深度探索:基于Maven构建的实战Demo》 Spring框架作为Java企业级应用开发的基石,自推出以来就以其强大的功能和灵活性赢得了广大开发者的心。Spring 4.0作为其一个重要版本,引入了许多改进和新...
这个"springmvc spring hibernate整合Demo"旨在帮助初学者理解如何将这三个框架协同工作,实现一个完整的CRUD(创建、读取、更新、删除)应用。 Spring MVC 是 Spring 框架的一部分,专门用于构建Web应用程序。它...
1. **Controller** - 控制器负责处理来自portlet的请求,通常通过实现`PortletController`接口或使用`@Controller`注解的类。在Spring 3.0中,你可以使用`@RequestMapping`注解来映射HTTP请求。 2. **Model** - ...
首先,我们来看标题"Spring 注解 方式配制的小demo",这意味着我们将学习如何创建一个简单的Spring应用,该应用完全基于注解进行配置。在传统的Spring配置中,我们需要在XML文件中定义bean及其属性,但使用注解配置...
在`Controller.java`中,我们可能会看到`@RestController`注解的类,以及使用`@RequestMapping`或`@GetMapping`等注解的方法。这些方法将处理HTTP请求,并返回反应式类型如`Mono`或`Flux`,它们是Reactor库提供的...
在实例Demo中,你可能看到Spring MVC的配置,包括DispatcherServlet、Controller、ModelAndView等组件的使用,以及视图解析器的设置,如JSP或Thymeleaf。 总的来说,Spring3实例Demo是一个全面展示Spring框架功能的...
在这个“Spring Data JPA Demo”项目中,我们将深入探讨如何利用Spring Data JPA 实现高效、简洁的数据访问。 1. **Spring Data JPA 概述** Spring Data JPA 提供了一种声明式的方式,通过Repository 接口来操作...
这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式基于Model-View-Controller(MVC),它将应用程序的业务逻辑、数据和...
2. **控制器 (Controller)**: 应用中的控制器可能会使用`@Secured`等注解来限制访问,例如只允许特定角色的用户访问某些方法。 3. **安全配置**: 可能包含自定义的`UserDetailsService`来从数据库或其他数据源加载...
"Spring MVC REST Demo"是一个示例项目,旨在展示如何在Spring MVC框架中实现RESTful Web服务。下面将详细讨论Spring MVC与RESTful API的结合,以及如何创建和测试此类服务。 首先,Spring MVC是Spring框架的一部分...
本篇将基于"极简Spring框架搭建demo"来深入讲解如何从零开始构建一个简单的Spring应用。 首先,我们需要在项目中引入Spring的核心库。这通常通过Maven或Gradle等构建工具来完成。在Maven的pom.xml文件中,我们可以...
4. **MVC框架**:Spring MVC是Spring为Web应用提供的Model-View-Controller模式实现,具有松耦合、可测试和高效的特点。它可以方便地整合视图技术,如JSP、Thymeleaf等。 5. **Spring Boot**:随着微服务的流行,...
2. **WebSocket消息处理**:创建一个控制器类,使用`@Controller`和`@MessageMapping`注解,定义处理WebSocket消息的方法。例如,`@MessageMapping("/send")`可以用来处理发送到`/send`路径的消息。 3. **WebSocket...
例如,`@Component`、`@Service`、`@Repository`和`@Controller`注解用于标记组件,`@Autowired`、`@Resource`用于注入依赖。 8. **Profile**:Spring支持配置文件的Profile特性,可以根据不同的环境(如开发、测试...
**Spring WebSocket 完整Demo详解** WebSocket是一种在客户端与服务器之间建立长连接的协议,它提供了双向通信的能力,使得服务器可以主动向客户端推送数据。在Web应用中,Spring框架提供了对WebSocket的支持,使得...
在Spring MVC的示例中,你可能会看到Controller类的定义、视图解析、以及如何使用ModelAndView对象传递数据到视图层。 对于测试,Spring提供了TestContext框架,它支持单元测试和集成测试。你可以看到如何使用JUnit...
**基于注解的Spring MVC小demo** 在Java Web开发领域,Spring MVC框架因其强大的功能和灵活性而被广泛应用。本demo展示了如何使用注解驱动的方式来构建一个简单的Spring MVC应用程序。注解使得代码更加简洁,减少了...