# jp-spring **Repository Path**: manonggeyuqi/jp-spring ## Basic Information - **Project Name**: jp-spring - **Description**: 微型web框架-包含(IOC, AOP, MVC) - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 8 - **Created**: 2017-05-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### jp-spring是一个轻量型的web框架 > 这个项目是为了更了解web开发和spring而做出来的 > 一些名称为了方便熟悉直接从Spring那里拿来...... > 学习项目
Inspired by: tiny-spring jw smart-framework jp-spring目前有下面4个功能模块, 还有一个是演示例子 - jp-ioc (负责bean的创建和注入,下面的模块都依赖这个核心。 核心的详解请看 这里 ) - jp-aop (AOP模块, 负责管理和创建Aspect,并对目标类进行织入) - jp-orm (ORM模块,现在还没完成) - jp-webmvc (MVC模块, 负责映射Request和Controller方法参数自动注入) - jp-webtest (所有模块在这里都会具体例子) # ioc模块, 请点 这里 ```java @Component("helloService") public class HelloService { @Value("jdbc.driver") private String text; @Autowired private OutputService outputService; @Autowired @Qualifier("outService-2") private OutputService outputService2; public void helloWorld(String text) { outputService.output(text); } public void outPutHello(String text) { outputService2.output(text); } } ``` # MVC模块 详情请看 这里 ```java @Controller public class TestController { @Autowired OutputService outputService; public TestController() { System.out.println("Hello I am TestController"); } @RequestMapping(value = "/test/{one}", method = RequestMethod.GET) public String test2(@PathVariable("one") Integer one, User user, @RequestParam("number") Float number) { System.out.println(outputService); outputService.output(one); outputService.output(user); outputService.output(number); return "test"; } @RequestMapping(value = "/test456465", method = RequestMethod.POST) public String test() { return "test"; } } ``` # AOP模块 具体介绍请看 AOP-README ```java @Aspect @Pointcut("execution(com.jp.controller.*.*())") public class ControllerAspect { private long begin; @Before public void before(TargetSource target) { begin = System.nanoTime(); } @After public void after(TargetSource target) { System.out.println("cost:" + (System.nanoTime() - begin)); } } @Aspect @Pointcut("execution(com.jp.controller.*.test*())") public class TestControllerAspect { @Before public void before(TargetSource target) { System.out.println(target.getTargetMethod() + " begin"); } @After public void after(TargetSource target) { System.out.println(target.getTargetMethod() + " end"); } } ```
# webtest ## 运行环境 1.servlet3.0 以上 2.jdk1.7以上 3.mysql5.6.26以上 数据脚本位置:jp-webtest/doc 在项目根目录下创建一个properties文件,输入下面的内容(jp-webtest里面有具体例子) ```java package.scan=com.jp page.folder=/page page.extension=.html resource.folder=/resources upload.size=5 ``` 1.package.scan ——代表需要扫描的包, 自动扫描子目录,如果需要配置多个,请使用 ";" 进行分割。为了方便,我直接从根目录开始扫描 2.page.folder ——页面的文件,默认从项目根目录开始 3.page.extension ——页面的扩展名(目前支持jsp,html和freemarker),默认jsp 4.resource.folder ——静态资源的文件夹,必须配置不然找不到静态资源。如果需要配置多个,请使用";" 进行分割。 5.upload.size —— 单位:MB, 最大上传文件的限制,默认4M
##### 使用jp-spring开发的博客系统, 具体点击这里。(内含演示地址) **如有不足,希望你能不吝赐教。**