发表于: 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的大量干货
明天计划的事情
推进复盘
评论