当前位置: 首页 > news >正文

YMP开发框架快速上手(三)— 编写第一个控制器

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

编写第一个YMP控制器

1. 创建并配置源码包

基于Maven创建的Web工程项目默认是没有java源码目录的,需要手动添加并在IDEA中设置它。

操作方法:在src/main目录下新建名称为java的目录,在java目录上点击鼠标右键,弹出菜单中选择“Mark Directory As” —“Sources Root”即可,此时java目录会变成蓝色,如图-1所示:

图-1

2. 创建包路径和控制器类

步骤1:在java源码包目录下新建包路径“net.ymate.demo”,这个包路径与前面配置的自动扫描路径要一致,否则自动扫描将无法找到控制器。

步骤2:在新建的包路径下新增控制器类—HelloController.java,如图-2所示:

类文件内容:

package net.ymate.demo;

import net.ymate.platform.webmvc.annotation.Controller;
import net.ymate.platform.webmvc.annotation.RequestMapping;
import net.ymate.platform.webmvc.view.IView;
import net.ymate.platform.webmvc.view.View;

/**
 * Hello Controller
 */
@Controller
public class HelloController {

    @RequestMapping("/hello")
    public IView hello() throws Exception {
        return View.textView("Hello YMP World!");
    }
}

图-2

PS:

  1. Controller注解 - 声明当前类为控制器类,必须。

  2. RequestMapping(“/hello”)注解 - 声明请求映射路径,意味着当前方法对外部暴露。

 

 

启动Web项目

 

1. 配置Tomcat容器与IDEA集成

步骤1:点击IDEA右上角图标 - “Edit Configurations…”按钮,如图-3所示:

图-3

步骤2:在配置窗口中点击左上角的“+”号按钮,选择“Tomcat Server” - “Local”选项,如图-4所示:

图-4

步骤3:选择“Application Server”,若未添加过Tomcat服务可以点击“Configure...”按钮选取Tomcat所在路径进行配置,如图-5、图-6所示:

图-5

图-6

步骤4:将Web工程项目发布到Tomcat容器,如图-7、图-8所示:

图-7

图-8

2. 启动Tomcat服务

图-9

 

 

浏览器访问控制器

打开浏览器,在地址栏中输入:http://localhost:8080/hello 回车进入,页面中输出内容为“Hello YMP World!”,恭喜你成功完成了第一个基于YMP框架的Web项目搭建过程,如图所示:

图-10

总结

YMP是一个非常简单、易用的Java开发框架,无需复杂的配置,整个操作过程只需以下4步:

  1. 创建新的Web工程项目;

  2. 添加YMP框架依赖包;

  3. 修改web.xml文件,添加Listener和Filter配置;

  4. 配置自动扫描路径参数,编写控制器类和方法;

YMP框架采用组件化、模块化打包方式,可按需装配,灵活可扩展,主要采用微内核实现Autoscan、AOP、IoC、Event、Plugin等,涵盖SSH框架中绝大部分核心功能,统一配置体系结构,日志分离存储,轻量级持久化层封装,功能强大的验证框架,配置简单的MVC架构,强大且易于维护和扩展、支持RESTFul风格、支持多种视图并整合插件特性等。

YMP不仅提供便捷的Web及其它Java项目的快速开发体验,也将不断提供更多丰富的项目实践经验。

感兴趣的小伙伴儿们可以加入 官方QQ群480374360,一起交流学习,帮助YMP成长! 了解更多有关YMP框架的内容,请访问官网:http://www.ymate.net/

 

转载于:https://my.oschina.net/robocop/blog/620361

相关文章:

  • 【分享】高手Java核心技术学习笔记
  • 烂泥:阿里云RDS本地恢复数据
  • Hadoop-HDFS分布式环境
  • ioS开发知识(三十二)
  • block和代理使用对比
  • 向量运算
  • 上传文件路径为何需要使用双斜杠
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • Opencv 学习资料集合(更新中。。。)
  • linux 复制目录结构,但不复制文件
  • Linux 定时器
  • HBase源码分析之HRegion上compact流程分析(一)
  • [iOS]如何删除工程里面用cocoapods导入的第三方库
  • KVC和KVO
  • @synthesize和@dynamic分别有什么作用?
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 4个实用的微服务测试策略
  • Invalidate和postInvalidate的区别
  • iOS编译提示和导航提示
  • javascript 总结(常用工具类的封装)
  • java第三方包学习之lombok
  • js学习笔记
  • Nodejs和JavaWeb协助开发
  • SQL 难点解决:记录的引用
  • TypeScript迭代器
  • Vue--数据传输
  • Xmanager 远程桌面 CentOS 7
  • 开源SQL-on-Hadoop系统一览
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前端知识点整理(待续)
  • 延迟脚本的方式
  • 积累各种好的链接
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (学习日记)2024.01.19
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)EOS中账户、钱包和密钥的关系
  • (转)Google的Objective-C编码规范
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)重识new
  • .NET Core 版本不支持的问题
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .net6+aspose.words导出word并转pdf
  • .NET程序员迈向卓越的必由之路
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ C++ ] STL---stack与queue
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • []AT 指令 收发短信和GPRS上网 SIM508/548