?? 前兩部分寫完了琅豆,整體上這個框架就寫完了点待,剩下的就是應(yīng)用一下了烈菌。~
友情鏈接:
手寫簡易SpringMVC框架(一):注解爱榕、內(nèi)嵌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結(jié)構(gòu),最外層的工程聚合了mvc-framework
和my-application
然后my-application
的pom.xml中添加了mvc-framework
模塊的依賴跪者,所以我們直接對根工程打包)棵帽;第二種方式是直接在idea中運行或者調(diào)試。第二種方式大家自己試試就ok了渣玲,我主要說下第一種逗概。
?? 我們找到打好的my-application
模塊的jar包,然后運行 java -jar 命令
java -jar {jar包所在的路徑}\my-application-1.0-SNAPSHOT.jar
結(jié)果發(fā)現(xiàn)提示 沒有主清單屬性忘衍,這是為什么呢逾苫?因為在以jar包運行的時候,我們需要給它制定一個main class枚钓,相當于是給程序指定入口隶垮。我們需要在my-application
的pom.xml中添加如下配置(其實就是把注釋掉的部位放開就是啦)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<!--指定jar包中的運行主類-->
<mainClass>cc.gfc.mvc.application.MyApplication</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
?? 我們重新打包,然后運行秘噪。結(jié)果ok啦狸吞。