SpringBoot MVC
環境搭建
-
在pom.xml添加spring-boot-starter-web
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-web</artifactId>
-
</dependency>
-
-
修改application.yml配置
-
-
spring:
-
datasource:
-
username: system
-
password: 123456
-
url: jdbc:oracle:thin:@localhost: 1521:XE
-
driverClassName: oracle.jdbc.OracleDriver
-
server:
-
port: 8889
-
-
編寫Controller,使用@RequestMapping和@RestController
-
-
public class BookService {
-
-
-
private BookDao bookDao;
-
-
-
public List<Book> loadAll(){
-
return bookDao.findAll();
-
}
-
-
-
public Book load(
-
return bookDao.findById(id);
-
}
-
-
-
public boolean delete(
-
int row = bookDao.deleteById(id);
-
if(row >= 1){
-
return true;
-
} else{
-
return false;
-
}
-
}
-
-
-
public boolean update(
-
book.setId(id);
-
int row = bookDao.update(book);
-
if(row >= 1){
-
return true;
-
} else{
-
return false;
-
}
-
}
-
-
-
public boolean add(
-
bookDao.save(book);
-
return true;
-
}
-
}
-
-
編寫Filter,解決Ajax調用跨域問題
-
-
public class AjaxDomainFilter implements Filter{
-
-
-
public void destroy() {
-
// TODO Auto-generated method stub
-
-
}
-
-
-
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
-
throws IOException, ServletException {
-
HttpServletResponse httpResponse = (HttpServletResponse)response;
-
httpResponse.setHeader( "Access-Control-Allow-Origin", "*");//設置允許哪些域名應用進行ajax訪問
-
httpResponse.setHeader( "Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
-
httpResponse.setHeader( "Access-Control-Allow-Headers", "Content-Type");
-
chain.doFilter(request, response); //調用后續serlvet
-
}
-
-
-
public void init(FilterConfig arg0) throws ServletException {
-
// TODO Auto-generated method stub
-
-
}
-
-
}
-
-
配置Filter,使用@WebFilter和@ServletComponentScan
-
-
-
-
public class BootApplication {
-
-
public static void main(String[] args){
-
SpringApplication.run(BootApplication.class, args);
-
}
-
-
}
-
-
修改pc_web前端的common.js,將請求路徑改為
var path = "http://localhost:8889";
SpringBoot 熱啟動
當修改完畢程序代碼后,可以自動重新部署。
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-devtools</artifactId>
-
</dependency>
如果修改了pom.xml定義,要從新啟動,修改了java代碼可以自動重新啟動。
SpringBoot MyBatis分頁
-
<dependency>
-
<groupId>com.github.pagehelper</groupId>
-
<artifactId>pagehelper-spring-boot-starter</artifactId>
-
<version>1.2.3</version>
-
</dependency>
然后在調用查詢代碼之前執行PageHelper.startPage方法
-
Page page = PageHelper.startPage(p, 3);
-
//分頁查詢
-
List list = bookDao.findAll();
-
//獲取總頁數
-
int totalPage = page.getPages();
SpringBoot 攔截器
-
編寫攔截器類,實現HandlerInterceptor接口,實現PreHandle、PostHandle、afterCompletion方法
-
public class AjaxDomainInterceptor implements HandlerInterceptor{
-
-
-
public boolean preHandle(
-
HttpServletRequest request,
-
HttpServletResponse response, Object handler)
-
throws Exception {
-
response.setHeader( "Access-Control-Allow-Origin", "*");//設置允許哪些域名應用進行ajax訪問
-
response.setHeader( "Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
-
response.setHeader( "Access-Control-Allow-Headers", "Content-Type");
-
return true;
-
}
-
-
//...
-
}
-
-
編寫配置類,繼承WebMvcConfigurerAdapter,重寫addInterceptors方法
-
//@Configuration
-
-
public class InterceptorConfiguration extends WebMvcConfigurerAdapter{
-
-
public void addInterceptors(InterceptorRegistry registry) {
-
//配置攔截器
-
AjaxDomainInterceptor ajaxDomain = new AjaxDomainInterceptor();
-
registry.addInterceptor(ajaxDomain).addPathPatterns( "/**");
-
}
-
-
}
-