003-搭建框架-实现IOC机制
2017-10-12 21:36
176 查看
一、实现目标
一种MVC【Model-View-Controller】一种设计模式,进行解耦。
注:
通过@Controller注解来定义Controller类;通过注解@Inject来定义成员属性;
通过@Service注解来定义Service类,通过注解@Action来定义方法;
返回View 对象标示jsp页面,Data标示JSon数据
二、代码开发
https://github.com/bjlhx15/smart-framework.git 中的chapter3和smart-framework部分
三、知识点
3.1、类加载器
View Code
一种MVC【Model-View-Controller】一种设计模式,进行解耦。
/* * 处理客户管理相关请求 */ @Controller public class CustomerController { @Inject private CustomService customService; @Action("get:/customer") public View index(Param param) { List<Customer> customerList = customService.getCustomerList(""); return new View("customer.jsp").addModel("customerlist", customerList); } @Action("get:/customer_show") public View show(Param param) { long id = param.getLong("id"); Customer customer = customService.getCustomer(id); return new View("customer_show.jsp").addModel("customer", customer); } @Action("get:/customer_create") public View create(Param param) { return new View("customer_create.jsp"); } @Action("post:/customer_create") public Data createSumbit(Param param) { Map<String, Object> paramMap = param.getParamMap(); boolean result = customService.createCustomer(paramMap); return new Data(result); } @Action("get:/customer_edit") public View edit(Param param) { long id = param.getLong("id"); Customer customer = customService.getCustomer(id); return new View("customer_edit.jsp").addModel("customer", customer); } @Action("post:/customer_edit") public Data editSumbit(Param param) { long id = param.getLong("id"); Map<String, Object> paramMap = param.getParamMap(); boolean result = customService.updateCustomer(id, paramMap); return new Data(result); } @Action("post:/customer_delete") public Data delete(Param param) { long id = param.getLong("id"); boolean result = customService.deleteCustomer(id); return new Data(result); } }
注:
通过@Controller注解来定义Controller类;通过注解@Inject来定义成员属性;
通过@Service注解来定义Service类,通过注解@Action来定义方法;
返回View 对象标示jsp页面,Data标示JSon数据
二、代码开发
https://github.com/bjlhx15/smart-framework.git 中的chapter3和smart-framework部分
三、知识点
3.1、类加载器
package com.lhx.smart.framework.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * 反射工具类 */ public final class ReflectionUtil { private static final Logger LOGGER = LoggerFactory.getLogger(ReflectionUtil.class); /** * 创建实例 * * @param cls * @return */ public static Object newInstance(Class<?> cls) { Object instance; try { instance = cls.newInstance(); } catch (Exception e) { LOGGER.error("实例化失败", e); throw new RuntimeException(e); } return instance; } /** * 调用方法 * * @param obj * @param method * @param args * @return */ public static Object invokeMethod(Object obj, Method method, Object... args) { Object result; try { method.setAccessible(true); result = method.invoke(obj, args); } catch (Exception e) { LOGGER.error("调用方法失败", e); throw new RuntimeException(e); } return result; } public static void setFiled(Object obj, Field field, Object value) { try { field.setAccessible(true); field.set(obj, value); } catch (Exception e) { LOGGER.error("参数设置失败", e); throw new RuntimeException(e); } } }
View Code
相关文章推荐
- 004-搭建框架-实现AOP机制【一】代理技术
- 006-搭建框架-实现AOP机制【三】AOP技术
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- 项目搭建系列之四:SpringMVC框架下使用UrlRewrite实现地址重写
- 从零开始,搭建博客系统MVC5+EF6搭建框架(1),EF Code frist、实现泛型数据仓储以及业务逻辑
- 基于.NET平台的分层架构实战(六)——依赖注入机制及IoC的设计与实现
- 从零开始写javaweb框架笔记15-搭建轻量级JAVAWEB框架-实现依赖注入功能
- 基于ReactNative的跨平台俄罗斯方块游戏的实现2——搭建游戏整体框架
- Hadoop集群搭建的密钥配置SSH实现机制的配置(2)
- Spring4.X + Spring MVC + Mybatis3 零配置应用开发框架搭建详解 (3) - 实现最基本的登录处理
- Java基础---Java---基础加强---类加载器、委托机制、AOP、 动态代理技术、让动态生成的类成为目标类的代理、实现Spring可配置的AOP框架
- 在Java Web项目里实现IOC(不使用框架,自己通过代码实现)
- 自己动手实现Spring IoC框架
- 这个框架里面会使用到依赖注入(DI)、IOC、反射、自动加载等等机制,如果你能自己写出来
- ERP框架开发中的License许可验证机制设计与实现 (包含源代码下载)
- Spring.NET学习笔记3——实现一个简易的IoC框架(练习篇) Level 100
- Linux 2.6.10内核下PCI Express Native热插拔框架的实现机制
- struts2源码分析-IOC容器的实现机制(上篇)
- 使用SSM(Spring+SpringMVC+Mybatis)框架搭建服务器实现登录验证
- Net AOP(五) 各种IoC框架下实现AOP