这几天闭关修炼了一阵子,就是学习这个springboot框架,当然也只是刚刚入门,这个框架是以springMVC为基础的,必须对springMVC有一定的了解才能够了解掌握springboot,那么我们话不多说,直接进入正题。
1创建项目
直接new 一个Maven工程(当然这个的前提是在你的计算机里的maven环境以及maven库都已经准备就绪的情况,(maven库自己测试一般都是本地,公司开发的话一般都是在私服里面))
点击next
还是点击next
我们建立web项目,所以选择web项目点击next。(我上面是因为没有选中web,选中即可点击next)
这里面的值按照实际情况填入,就是maven项目里几个属性的值(这里我就以springboot为例),填写完成之后点击finish这样项目就创建成功了!
到这样项目报错,这里报错是很正常的,因为我们没有引入页面的jar包,那么我们现在去解决这个报错,之前我们在理论上都知道springboot是通过pom.xml这个文件来引入jar包的,那还等什么呢,来吧!
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.springboot</groupId>
<artifactId>springbootdemo</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>springbootdemo</name>
<description>springbootdemo</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.7</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Start: log4j2 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<!-- End: log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
<!--mybatis分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.18</version>
</dependency>
<!--过滤emoji字符-->
<dependency>
<groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId>
<version>3.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
<!-- start 使用Jetty作为容器运行 -->
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
<scope>provided</scope>
</dependency> -->
<!-- end 使用Jetty作为容器运行 -->
</dependencies>
<!-- 普通的maven打包方式 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<!-- 普通的maven打包方式 -->
</project>
然后跟新项目一下即可(右击项目>选中maven>点击updateProject>选中正在操作的项目>点击ok即可)
注意:这时候的Java Resources 只有一个文件夹,所以我们需要再建一个文件夹
2项目编写
建立文件夹后如图所示
我们首先在java文件夹下建包,并且书写启动类以及控制层等等
如此我们的层数都分好了,
注意:这里的启动的所在层级一定要是他们其他所在的父级数,因为注解是从上往下自动扫描的,
这里还有我们的mapper文件没有配,配置mapper文件书写sql语句对数据库进行操作,那么必须有的一点就是首先得让程序连接上数据库;
在resources文件夹下建application.properties文件,注意:这里的文件名一定得是application.properties
在application.properties文件里配置数据库的相关信息
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.username=scott
spring.datasource.password=tiger
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
并且同时在resources文件下新建一个文件夹用于存放mapper文件(这里就建一个叫mapper的文件夹)
此外,为了后面做准备,我们再新建两个文件夹分别叫static和templates用于存放页面和js等一些文件;
在application.properties配置页面路径以及mapper文件的路径
# thymeleaf spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.check-template-location=true spring.thymeleaf.suffix=.html spring.thymeleaf.encoding=UTF-8 spring.thymeleaf.content-type=text/html spring.thymeleaf.mode=HTML5 spring.thymeleaf.cache=false mybatis.mapper-locations=classpath:mapper/*Mapper.xml mybatis.type-aliases-package=com.springboot.dao
下面做一个简单的列子,从数据库中拿一张表,并将表中的信息显示的页面上
前台页面代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"></meta> <title>Insert title here</title> </head> <body> <a th:href="@{'/test/selectEmp'}">查询emp</a>
</body> </html>
//注意:这是使用的thymeleaf模板,所以th:href="@{'/test/selectEmp'}"是服务器路径的写法
form表单中的action路径写法是:th:action="@{'/test/selectEmp'}"
控制层代码
@Controller @RequestMapping("/test") public class UploadAndDownloadController { @RequestMapping("/selectEmp") public String selectEmp(){ ... ... ... return ""; } }
中间层省略,和springMVC一样调用service的接口方法即可,同理,service层和dao的接口,model层以及mapper配置文件省略,同springMVC;