摘要: 实现功能 表单请求传递的数据,格式为以下格式的日期时间数据。 (1):yyyy-MM-dd hh:mm:ss (2):yyyy-MM-dd 执行方法可以使用Date类型接收。 实现思路 1.获得表单字符串。判断是否符合Date的格式。使用DataFormat转成成Date。 实现代码 1.原来数据绑 阅读全文
posted @ 2017-11-16 14:44 继续前向 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 功能实现 需求:根据表单的字段名,如果和参数的变量名一致,并且类型兼容,那么将数据自动封装到对应的自动上。 包括的支持的数据类型有: 1.基础数据类型:long、int、double、float、char、byte、boolean、short 2.基础数据类型的包装类:Long、Integer、Do 阅读全文
posted @ 2017-11-12 00:28 继续前向 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 实现功能 以上的代码实现了通过路径执行对应的执行方法,但执行方法的参数是必须需要传入请求后响应的参数的。 分别为:HttpServletRequest和HttpServletResponse。然后通过这个两个对象获得参数和处理参数。 需求:我们希望根据方法声明的参数列表决定是否需要ServletAP 阅读全文
posted @ 2017-11-12 00:05 继续前向 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 实现功能 当Controller的执行方法返回的视图映射字符串是 “forward:/index.jsp”或者"/index.jsp":使用forward跳转到对应的页面 “redirect:/index.jsp”:使用redirect重定向到对应的页面 实现思路 我将这部分的逻辑统一写在一个视图解 阅读全文
posted @ 2017-11-11 23:38 继续前向 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 实现功能 开发环境配置好,那么我们可以编写代码了 由于BasicMVC框架的对象交由BasicIOC容器托管,所以启动JavaWeb项目时,将程序所有的对象使用Ioc内核的机制加载到容器池里面。 基于这个原因:我们实现DispacherServlet控制器跳转必须首先完成以下三个动作 1.我们必须在 阅读全文
posted @ 2017-11-11 22:40 继续前向 阅读(556) 评论(0) 推荐(0) 编辑
摘要: 实现功能 搭建Eclipse开发环境 1.了解Eclipse工具普通项目是怎样关联依赖项目的 2.了解Eclipse工具WEB项目是怎样关联依赖项目的 实现步骤 1. 创建一个Java普通项目 2. 导入需要使用的ServletAPI的类库。 注意:ServletAPI是内置在Web服务器里面的。我 阅读全文
posted @ 2017-11-11 21:30 继续前向 阅读(272) 评论(0) 推荐(0) 编辑
摘要: BasicMVC子框架概述 我们暂且将该MVC框架称为BasicMVC框架。 由于我们正在BasicMVC框架,是基于我们前面写的BasicIoc内核实现的。所以必须依赖BasicIoc内核。所谓我们称BasicMVC框架是basicIoc框架的子框架。 在BasicMVC框架的实现之前,先我们要先 阅读全文
posted @ 2017-11-11 21:23 继续前向 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 本人的想法 浮躁的社会,各种Struts,Spring,Hibernate,Mybatis的学习教程充斥互联网。让人有一种错觉,只要学会框架,就可以解决一切问题! 从入行就开始的思考一个问题:作为一个Java程序员,难道仅仅就会几个框架就满足了吗? 有没有想过试试,自己也写一个!!! 然而,事与人违 阅读全文
posted @ 2017-11-11 20:24 继续前向 阅读(426) 评论(2) 推荐(0) 编辑
摘要: 实现功能 现实需求中,有一些类似无法加入扫描组件注解的。如jdk里面的类。 那么框架必须要支持将没有组件注解标识的类也可以有一个方式注入到容器里面。 那么,我们通过类似Spring的@Bean的方案,来实现这个需求。 通过在配置类的方法的上面,使用@Bean注解,将返回的对象加到容器中。 实现思路 阅读全文
posted @ 2017-11-11 19:45 继续前向 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 实现功能 就是在方法的上面加入@Autowired注解,容器中的对象会注入到对应类型的参数。 注意:暂时实现注入一个对象。所有方法的参数列表的参数只能有一个。 实现思路 其实实现的思路和给字段注入的逻辑是一样的。遍历类所有的方法有没有@Autowired,有的就给它赋予容器中对应的对象。 实现步骤 阅读全文
posted @ 2017-11-11 19:23 继续前向 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 实现功能 需求:在类的成员属性使用@Autowirde注解注入容器中的对象。 实现思路 要实现这个功能。我们首先要思考一个问题:类与类的关系是在调用的建立的,还是说在创建对象的时候就就将建立了? 我实现的方案是,在在程序启动后,所有对象创建后直接就将对象的属性和属性之间的关系创建了。接下来我就用这个 阅读全文
posted @ 2017-11-11 18:44 继续前向 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 实现功能 如果扫描组件注解(@Controller,@Service,@Repository,@Component)默认对象名,已经实现了默认使用首字母小写类名的作为对象名。 但,现实需求中。我们有时候希望可以自己定义对象的名。 实现思路 1.获得扫描组件注解的name属性的值。 2.将这个值作为对 阅读全文
posted @ 2017-11-11 17:09 继续前向 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 控制反转概述 控制反转(Inversion of Control,英文缩写为IoC),就是将代码的调用的控制权,由调用方转移给被调用方。 如图:修改代码A类的代码,才能将B类的对象换成C类。代码的控制权在A类(调用方)。我们将这种代码调用的方式,称为强耦合的代码调用。 (图2-1) 将上图的需求,修 阅读全文
posted @ 2017-11-11 16:47 继续前向 阅读(853) 评论(0) 推荐(0) 编辑
摘要: 实现功能 --前面实现的代码-- 默认的对象名就类名。不符合Java的命名规范。我们希望默认的对象名首字母小写。 实现思路 创建一个命名规则的帮助类。实现将对大写开头的对象名修改为小写开头。 实现步骤 1.创建一个命名规则帮助类 2.在创建对象是调用该方法,AbstractApplicationCo 阅读全文
posted @ 2017-11-11 16:42 继续前向 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 实现功能 以上的代码我们发现。我们都是将@ComponentScan扫描的路径下的所有类都加载到容器中的。 而实际需求,我们并不希望所有的类都创建对象,而是加了组件注解@Controller,@Service,@Repository,@Component的类才创建对象 而不加这些标识的类不需要创建对 阅读全文
posted @ 2017-11-11 16:20 继续前向 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 实现功能 1.我们看到@ComponentScan注解一个开始定义就是需要支持,扫描多个包,将多个包的类名获取到。现在就实现这个功能。 实现思路 根据传入的字符串数组,获得多个包下的类全限制名。 实现步骤 --基于之前的代码-- 1.在PackageUtils.增加一个扫描多个包的方法 2.修改Ab 阅读全文
posted @ 2017-11-11 16:03 继续前向 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 实现的功能 1. 启动程序时,将@ComponentScan加载的类,创建对象并放在容器里面。(查看上一篇文) 2. 通过ApplicatoinContext的getBean()方法获得容器里面的对象。 (1)使用getBean("对象名")返回的对象都Object类型 (2)使用getBean(" 阅读全文
posted @ 2017-11-11 15:47 继续前向 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 功能说明 该步骤实现的功能包括: 1. 启动程序时,将@ComponentScan加载的类,创建对象并放在容器里面。 2. 通过ApplicatoinContext的getBean()方法获得容器里面的对象。 (放在下一篇文实现) 实现步骤 1.定义一个扫描注解@ComponentScan 2.定义 阅读全文
posted @ 2017-11-11 15:27 继续前向 阅读(1111) 评论(2) 推荐(0) 编辑
摘要: Ioc内核要解决的问题 1.被调用方,在程序启动时就要创建好对象,放在一个容器里面。 2.调用方使用一个接口或类的引用(不用使用new),就可以创建获得对象。 解决这个两个问题的思路 1.定义一个对象容器,用于存储所有的创建的对象。 2.给启动程序时就需要创建对象并放在容器里面的类一个标识,我称为组 阅读全文
posted @ 2017-11-11 14:58 继续前向 阅读(303) 评论(0) 推荐(0) 编辑