SpringBoot整合SpringMVC+Mybatis+Maven

关于微服务的相关知识这里就不介绍了,百度上很多文章都有详细的说明,这里主要介绍微服务框架的基础组件SpringBoot项目的构建,帮助大家快速上手学习,同时自己也是刚接触这方面的内容,如有不当,欢迎指教,谢谢!

这里先说明一下,本demo采用的数据库是SQL SERVER数据库,其他数据库亦可。(PS:吐槽一下,SQL SERVER整合还是挺麻烦的,不推荐)具体步骤如下:

第一步:自己构建一个空的maven项目。

SpringBoot整合SpringMVC+Mybatis+Maven_第1张图片

第二步:配置pom.xml文件,具体代码如下



    4.0.0

    com.winning
    PAPRO
    1.0-SNAPSHOT

    
        org.springframework.boot
        spring-boot-starter-parent
        1.5.1.RELEASE
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
        
            org.springframework
            spring-tx
            ${spring.version}
        

        
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        

        
        
            com.microsoft.sqlserver
            sqljdbc4
            4.0
            4.0
        
        
            com.microsoft.sqlserver
            mssql-jdbc
            6.2.0.jre8
            runtime
        

        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.0
        

        
        
            org.springframework.boot
            spring-boot-devtools
            true
        
    

注:这里面配置了 thymeleaf 组件(基于H5页面的模板引擎,可以替代jsp),springboot官网推荐使用,不使用jsp页面。关于SQL SERVER依赖的注入,这里需要自己手工本地导入。(额。。吐血,现在知道为什么吐槽了吧,具体步骤转:https://blog.csdn.net/dianhuilu4947/article/details/81866392)

第三步:上面两个准备工作完成之后,开始构建项目的具体目录。(可以参考我的目录,也可以自己定义)

SpringBoot整合SpringMVC+Mybatis+Maven_第2张图片

具体展开为:这里写了一个登陆功能模块。

SpringBoot整合SpringMVC+Mybatis+Maven_第3张图片

第四步:对目录机构进行简单的说明,注意ApplicationController的位置(需要放在其他包的最外面,因为该类为启动类,需要扫描其他类)和application.propertites位置(放在resources目录下,这样程序能自动扫描该配置文件)。resouces下static目录下存放一下静态资源文件,templates目录下存放一些基于thymeleaf 的H5页面。接下来在目录构建完成后,需要配置一下启动类和配置文件。

ApplicationController:

package com.winning;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

//@Controller
//@EnableAutoConfiguration     // @SpringBootApplication 注解等同于 @EnableAutoConfiguration 和 controller注解标注和扫描
@SpringBootApplication
@MapperScan("com.winning.mapper")
@ComponentScan
public class ApplicationController {
    public  static  void  main(String[] args) throws  Exception{
        SpringApplication.run(ApplicationController.class,args);
    }
}

注意:@SpringBootApplication表明该类是一个启动类,@MapperScan扫描mapper文件。

application.propertites:

#thymeleaf模板配置
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
#热部署文件,页面不产生缓存,及时更新
spring.thymeleaf.cache=false
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**
#配置SQL SERVER数据源
spring.datasource.url=jdbc:sqlserver://127.0.0.1:1433; DatabaseName=PAPRO
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.username=sa
spring.datasource.password=123456
#Mybatis xml文件路径配置
mybatis.mapper-locations=classpath:/mapper/*.xml

第五步:构建具体业务功能。

LoginInfoController:

package com.winning.controller;
import com.winning.service.LoginInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;

@Controller
@RequestMapping("/login")
public class LoginInfoController {
    @Autowired
    @Qualifier("loginService")
    private LoginInfoService loginService;

    @RequestMapping("/home")           //主页面
    public ModelAndView welToHome() throws  Exception{
        return  new ModelAndView("login/login");
    }

    @RequestMapping("/judgeInfoAndDis")  // 登陆信息验证和页面跳转
    public  ModelAndView judgeInfoAndDis(HttpServletRequest request, HttpServletResponse response) throws Exception{
        HashMap paraMap=new HashMap();
        String dispatcherPath="";
        paraMap.put("number",request.getParameter("number"));
        paraMap.put("password",request.getParameter("password"));
        if(loginService.selUsers(paraMap).size()>0){
            dispatcherPath="login/main";
            paraMap.put("message","1");
        }else {
            dispatcherPath="login/login";
            paraMap.put("message","0");
        }
        return new ModelAndView(dispatcherPath,paraMap);
    }
}

LoginInfoDao:

package com.winning.dao;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Mapper
@Repository
public interface LoginInfoDao {
    public List selUsers(Map map) throws Exception;
}
User:

package com.winning.entity;
public class User {
    private  String name;
    private  int    age;
    private  String  tel;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }
}
LoginInfoService:

package com.winning.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public interface LoginInfoService {
    public List selUsers(Map map) throws Exception;
}
LoginInfoServiceImp :

package com.winning.service.serviceImp;
import com.winning.dao.LoginInfoDao;
import com.winning.service.LoginInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service("loginService")
public class LoginInfoServiceImp implements LoginInfoService
{
    @Autowired
    private LoginInfoDao loginInfoDao;

    @Override
    public List selUsers(Map map)  throws Exception{
        return loginInfoDao.selUsers(map);
    }
}
loginInfoMapper.xml:





login.html:




    
    PAPRO
    
    

    
    
    
    

    
    
    



Welcome to PAPRO

账号:
密码: 账号或者密码错误!
+

Or connect with:

注意:使用thymeleaf时,不要忘了在h5头上加引用。

所有代码已经粘贴上去,自己定义项目目录的请复制代码的时候注意取舍,至此项目搭建已经完成,接着就是部署启动。(需要注意的是接口对数据库的访问写法,写mapper文件的时候,命名空间要是dao层接口的全包名,实行方法映射)

第六步:部署,启动。

SpringBoot整合SpringMVC+Mybatis+Maven_第4张图片

SpringBoot整合SpringMVC+Mybatis+Maven_第5张图片

SpringBoot整合SpringMVC+Mybatis+Maven_第6张图片

点击编辑配置,选择springboot,然后配置Main class找到我们的启动类,配置ok,接着直接运行。

第七步:控制台启动成功,并且给出端口号和自定义Controller类中的访问路径。(这里忘了说,tomcat也集成在springboot配置文件里,不需要我们部署配置,直接使用即可)

SpringBoot整合SpringMVC+Mybatis+Maven_第7张图片

访问:  (端口号+自定义controller方法访问路径)

访问结果:完成了简单的数据校验,整合完成。(PS:登陆访问页面效果自定义,只要能实现数据访问就ok了,我给的html因为没有给出css等资源文件,所以没效果很正常)

SpringBoot整合SpringMVC+Mybatis+Maven_第8张图片

 至此,一个springboot整合项目已经完成,希望对大家有帮助!

你可能感兴趣的:(技术博客)