这几天闭关修炼了一阵子,就是学习这个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;