发表于: 2018-03-02 11:28:44

1 724


今天完成的事情

 1.学习springboot的相关知识

 首先是创建springboot的项目:

 说一下比较神奇的地方,这里本身跑起来是一个web项目,为什么没用tomcat呢?而是启动一个主方法?

  是因为这个主方法将tomcat嵌入进去了

 (1)新建一个project

 (2)然后项目参数这里就不用说了

  (3)勾选web模块

 然后项目就创建好了。

 最后我的项目结构是这样的:

 web包是我自己整的东西,稍后说。

那个自带的类是这样的:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootApplication {

public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
  }
}

@SpringBootApplication注解表示这个是一个springboot应用。

 然后就是我自己新建的web目录了,里面只有一个controller:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "曲艳行师兄贼几把帅";
   }
}

这里需要说明的是@RestController注解,这个注解是相当于@ResponseBody和@Controller合在一起的作用,用这个注解注解controller的时候,无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用。

 然后运行主方法,并访问测试:、

 

 (2)打成jar包来运行:

  关于这个感觉没什么好说的。。打包运行包肯定都晓得,说一说怎么结束运行的这个jar吧:

 

如图,运行了这个jar,那么想要关闭的时候呢:

 打开cmd,查看端口占用情况:

 

 可以看到8080的pid是5332,接下来我们打开资源管理器:

 

 找到pid是5332的进程,点击结束进程就好了。。

2.让springboot支持jsp:

 其实也很简单啦

 首先在pom中加上这些依赖:

<!--以下是为了支持jsp-->
     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
     </dependency>

     <!-- servlet依赖. -->
     <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <scope>provided</scope>
     </dependency>
     <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
     </dependency>
     <!-- tomcat的支持.-->
     <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
     </dependency>
  </dependencies>
  <!--全部配置完毕-->

 然后是修改application.properties,指定jsp的路径:

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

然后是在controller类里面修改注解@RestController,去掉前面的Rest。

最后写一个jsp页面就行了。

 在运行的时候说几句:

 

这个运行结果就是运行了主方法之后的效果,可以说很难受了,于是在几番搜索之后发现了新的方法:

使用spring boot run的命令在运行就行了:

ojbk

然后说一下热部署,这种部署方式也很简单,加上依赖就行,然后还需要一些其他的配置,在修改controller的时候可以自己重启。

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional<!-- 这个需要为 true 热部署才有效 -->
        </dependency>

 然后是配置端口和上下文的路径,也非常简单:

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
server.port=8888
server.context-path=/test

我觉得最方便的是配置的切换:

 

 分别是这些:

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
spring.profiles.active=pro

----------------------------------------

server.port=8080

server.context-path=/test 

------------------------------------

server.port=80
server.context-path=/

分别对应上边的东西,然后我们已经打好了包

mvn install

运行包

java -jar target/springboot-0.0.1-SNAPSHOT.jar --spring.profiles.active=pro   

或者

java -jar target/springboot-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

 这样本地测试和发布线上就变得很舒服。


然后是yml,这是配置文件格式的一种 下面是对比properties和yml:

  然后是相关的注意事项:

2.使用springboot完成crud的所有操作。

这个过程比较简单啦

 3.使用springboot完成restful风格的接口,这个东西稍微费劲,用的是ajax实现的delete方法:

这是我的controller:

@DeleteMapping("/category/{id}")
public void deleteCategory(@PathVariable("id") int id, HttpServletResponse response) throws Exception{
System.out.println("删除 :"+id);
   categoryMapper.delete(id);
   String msg = "suc";
   response.getWriter().print("suc");
}

这是jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.8.2.js"></script>

<script type="text/javascript">
   /*将post method 改变为delete*/
   function del(id) {
alert(id);
       $.ajax({
type:"delete",
           url:"/category/"+id,
           data:"{id:id}",
           dataType:"text",
           success:function (msg) {
if(msg == "suc"){
alert("删除成功");
                   location.reload();
               }else{
alert("删除失败");
               }
}
})
}
</script>

<div align="center">

</div>

<div style="width: 500px;margin:20px auto;text-align:center">
   <table align="center" border="1" cellspacing = "0">
       <tr>
           <td>id</td>
           <td>name</td>
           <td>编辑</td>
           <td>删除</td>
       </tr>
       <c:forEach items="${cs}" var="c" >
<tr>
               <td>${c.id}</td>
               <td>${c.name}</td>
               <td><a href="editCategory?id=${c.id}">编辑</a> </td>
               <td><a class="delete" href="category/${c.id}">删除</a></td>
               <td><button  onclick="del(${c.id})">删除</button></td>

           </tr>
       </c:forEach>

</table>
   <form action="/category" method="post">
       <input type="hidden" name="_method" value="PUT">
       name:<input name = "name"><br>
       <button type="submit">提交</button>
   </form>

</div>

如此就可以实现delete方法了,演示如下:

点击删除 id=36的书数据:

点击确定:

啊哈哈哈 终于成功了,代码贴上来很简单,而自己摸索的过程真的很费劲

4.然后自己犯迷糊,在搞post方法的时候废了很多劲,最后才得知a标签只能是get方法。。。

 就这样把restful风格的springboot搞完了 哈哈哈


今天遇到的问题

 已解决 很开心

 今天的收获

 ajax的使用以及a标签的小知识以及springboot的大量干货

明天计划的事情

 推进复盘


返回列表 返回列表
评论

    分享到