• spring boot搭建网站后记之spring boot层次与URL处理


        通过第一部分,了解了Maven项目的文件分布。

      通过第二部分,了解了Spring MVC。

      到了Spring boot中,一切都得到了简化,可以将马上要用到的文件与Spring MVC进行对应,这样比较好理解MVC设计模式。

    Spring boot层次

      DAO层:data acess object。是数据库的访问的对象。(M层)

      Service层:对数据库的对象进行统一的操作。业务逻辑层。(M层)

      Controller层:接受用户请求并返回数据。(C层)

      Base层:若Service层和Controller层连接过与紧密,则加入Base层。

      View层:负责前端显示。(V层)

      

    增加url访问路径 

    1 @Controller
    2 public class deal {
    3     @ResponseBody
    4     @RequestMapping(path = {"/", "/hello"})
    5     public String index() {
    6         return "Hello World";
    7     }
    8 }

    探究:

      Ctrl+左键进入RequestMapping,它对应到RequestMapping接口。

      调用@RequestMapping(path = {"/", "/hello"})方法,根据视频它对应到下面的方法:

    1 @AliasFor("value")
    2     String[] path() default {};

      其方法可以将{"/", "/hello"}转化成一个String数组。用户访问/或者/hello都可行。

      其效果是:

        在浏览器中输入127.0.0.1:8080/或者是127.0.0.1:8080/hello都可以看到hello world的页面。

      值得注意的是,在controller文件中没有定义path变量,但是在@RequestMapping却可以用,说明@RequestMapping实际是在其他定义好了path变量的文件中执行,而不是controller文件中执行。

      而且更有意思的是,将path变量改成其它变量dd,出错:The attribute dd is undefined for the annotation type。

    给url增加参数

    有时候网站url栏出现的网址为:127.0.0.1:8080/profile/2/1?key=12334x&type=12 这种形式。实现代码如下:

    1     //{goupid},{userid}为路径变量,访问时可以自行修改。而profile则是固定的路径了。
    2   @RequestMapping(path = {"/profile/{groupid}/{userid}"})
    3 @ResponseBody
    4   //PathVariable是路径中的一个变量。路径中的值类型在本程序中转成对应的gp,ui的String类型
    5 public String profile(@PathVariable("groupid") String gp, 6 @PathVariable("userid") String ui,
    7   //RequestParam不是路径中的变量,而是额外加上的变量。url中的值转化成本程序的int类型和String类型的type和key变量。
    8 @RequestParam(value = "type", defaultValue = "1") int type, 9 @RequestParam(value = "key", defaultValue = "nowcoder") String key) { 10 //最后把url变量显示在网页中。
    11     return String.format("GID{%s}, UID{%s}, TYPE{%d}, KEY{%s}", gp, ui, type, key);
    12 }

       效果:

        访问http://127.0.0.1:8080/profile/2/1?key=12334x&type=1

        显示:

          GID{2}, UID{1}, TYPE{1}, KEY{12334x}

  • 相关阅读:
    VueBlog
    java 代理模式
    集合框架
    面试题
    java 多线程
    网络编程
    HTTP
    MAVEN
    Redis高级
    深入浅出--梯度下降法及其实现
  • 原文地址:https://www.cnblogs.com/yulianggo/p/10451793.html
Copyright © 2020-2023  润新知