手写简易SpringMVC框架(三):极其简单的应用

   前两部分写完了,整体上这个框架就写完了,剩下的就是应用一下了。~

友情链接
手写简易SpringMVC框架(一):注解、内嵌Tomcat、类扫描
手写简易SpringMVC框架(二):bean实例化、MappingHandler

3 my-application

   这一部分十分简答我就不细说了,大家可以直接看代码。

@MyController
public class SalaryController {
    @MyAutoWired
    private SalaryService salaryService;

    @MyRequestMapping("/salary")
    public Integer getSalaryByNameAndDegree(@MyRequestParam("name") String name, @MyRequestParam("degree") String degree) {
        if ("xiaoming".equals(name) && "master".equals(degree)) {
            return 1000;
        } else {
            return 500;
        }
    }

    @MyRequestMapping("/salary/modify")
    public User modifySalary(String name, String salary) {
        return new User("xxx", "1000");
    }

    @MyRequestMapping("/salary/id")
    public Integer getSalaryById(@MyRequestParam("id") String id) {
//        System.out.println(id);
        return salaryService.getSalaryById(Integer.parseInt(id));
    }
}
public class User {
    private String name;
    private String salary;

    public User(String name, String salary) {
        this.name = name;
        this.salary = salary;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSalary() {
        return salary;
    }

    public void setSalary(String salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", salary='" + salary + '\'' +
                '}';
    }
}
@MyBean
public class SalaryService {
    public Integer getSalaryById(Integer id){
        return id * 100;
    }
}

public class MyApplication {
    public static void main(String[] args) {
        MVCApplication.run(MyApplication.class);
    }
}

4 运行及测试

   我们通过两种方式来测试运行:一种是将my-application打包然后运行这个jar包(注意一下我的maven结构,最外层的工程聚合了mvc-frameworkmy-application然后my-application的pom.xml中添加了mvc-framework模块的依赖,所以我们直接对根工程打包);第二种方式是直接在idea中运行或者调试。第二种方式大家自己试试就ok了,我主要说下第一种。

   我们找到打好的my-application模块的jar包,然后运行 java -jar 命令

java -jar {jar包所在的路径}\my-application-1.0-SNAPSHOT.jar

结果发现提示 没有主清单属性,这是为什么呢?因为在以jar包运行的时候,我们需要给它制定一个main class,相当于是给程序指定入口。我们需要在my-application的pom.xml中添加如下配置(其实就是把注释掉的部位放开就是啦)

    
        
            
                org.apache.maven.plugins
                maven-shade-plugin
                2.4.1
                
                    
                        package
                        
                            shade
                        
                        
                            
                                
                                    
                                    cc.gfc.mvc.application.MyApplication
                                
                            
                        
                    
                
            
        

    

   我们重新打包,然后运行。结果ok啦。

你可能感兴趣的:(手写简易SpringMVC框架(三):极其简单的应用)