springboot搭建和开发(上)
来源:互联网 发布:呼叫器软件设置 编辑:程序博客网 时间:2024/06/06 05:47
在这里给大家介绍一下springboot的搭建及开发,本文写的很详细,是从0开始的,步骤详细,而且代码也都是完整的,大家可以拷贝回去,根据需要修改。
1,在这里我使用的工具是IDEA;首先,先建立一个maven项目,我搭建了一个springboot的maven项目,如下图所示:
2,搭建好maven项目后,第一部是将pom.xml添加东西,也就是一些配置和依赖等;如下图,可以将此pom.xml文件复制到你的pom.xml里面去,下面是一个完整的pom文件;添加的配置和依赖都加上了注解的。添加好pom文件后记得在线下载pom文件里面的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>springboot</groupId> <artifactId>com.springboot.test</artifactId> <version>1.0-SNAPSHOT</version> <name>com.springboot.test Maven Webapp</name> <url>http://maven.apache.org</url> <!-- pom继承parent --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.5.RELEASE</version> </parent> <!-- nexus是用于建立maven私服的,这样maven仓库的jar包 就会从整个私服中获取,url就是私服的地址 --> <repositories> <repository> <id>nexus</id> <name>Team Nexus Repository</name> <url>http://maven.net.cn/content/groups/public/</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>Team Nexus Repository</name> <url>http://maven.net.cn/content/groups/public/</url> </pluginRepository> </pluginRepositories> <!-- 使用properties定义maven熟悉,然后在其他地方使用 ${属性名}来引用该属性 --> <properties> <java.version>1.8</java.version> <mybatis.version>3.3.0</mybatis.version> <mybatis-spring.version>1.2.3</mybatis-spring.version> <commons-lang3.version>3.4</commons-lang3.version> <commons-io.version>2.4</commons-io.version> <jackson.version>2.1.5</jackson.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <!-- 下面是项目依赖的jar包 --> <dependencies> <!-- 下面是springboot需要的依赖 --> <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-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!--<scope>provided</scope>--> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!-- mysql 驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <!-- 数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.12</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- httpcomponents是用来做http访问的工具 --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency> <!-- GENERAL UTILS begin --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons-lang3.version}</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>${commons-io.version}</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.2</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.0</version> </dependency> <!-- shiro spring. --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.2.6</version> </dependency> <!-- shiro ehcache --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-ehcache</artifactId> <version>1.2.6</version> </dependency> <!-- 包含支持UI模版(Velocity,FreeMarker,JasperReports), 邮件服务, 脚本服务(JRuby), 缓存Cache(EHCache), 任务计划Scheduling(uartz)。 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <!-- 集成ehcache需要的依赖--> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> </dependency> <!-- Swagger 是一系列对 RESTful 接口进行规范描述和页面展示的工具. 通过 springfox-swagger 将 Swagger 与 Spring-MVC 整合, 可从代码中的注解获取信息, 并生成相应的文档. 效果如下所示. --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.2.2</version> </dependency> <!-- 文件上传 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <!-- spring热部署--> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.6.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --> <!-- poi是用来通过Java生成office的 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.15</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.xmlbeans/xmlbeans --> <!-- xmlbeans用来更好的解析xml --> <dependency> <groupId>org.apache.xmlbeans</groupId> <artifactId>xmlbeans</artifactId> <version>2.6.0</version> </dependency> <!-- https://mvnrepository.com/artifact/org.jdom/jdom --> <!-- jdom是用来对xml的生成、解析、序列化等 --> <dependency> <groupId>org.jdom</groupId> <artifactId>jdom</artifactId> <version>1.1.3</version> </dependency> </dependencies> <build> <finalName>partner</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--<configuration> <fork>true</fork><!– 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart –> </configuration>--> </plugin> <!-- 是用来生成mapper.xml文件的,generatorConfig.xml就是配置 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin> </plugins> </build> <packaging>war</packaging></project>
3,添加完pom文件后我们还需要在src.main.resources下面建立3个文件夹,如下图所示:
在resources里面建立3个文件夹,mapper用来存放mybatis中的mapper.xml文件的;static是用来存放一些html需要用到的js,css等文件;templates是用来存放页面的,这里就是用来存放html的。
4,建立好3个文件后,我们还需要在resources里面加上4个文件,第一个是logback.xml日志文件,生成log的,在spring中也有,不过在这里加了一个logback.xml代码在下面,大家可以全部拷贝到项目中,下面是一个完整的logback.xml;
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html --><configuration scan="true" scanPeriod="10 seconds"> <include resource="org/springframework/boot/logging/logback/base.xml" /><property name="LOG_PATH" value="${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}" /><logger name="org.springframework.web" level="INFO"/><logger name="org.springboot.sample" level="TRACE"/><logger name="com.springboot" level="info" /><appender name="INFO_FILE"class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${LOG_PATH}/info.log</File><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/info-%d{yyyyMMdd}.log.%i</fileNamePattern><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>500MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><maxHistory>2</maxHistory></rollingPolicy><layout class="ch.qos.logback.classic.PatternLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}-%msg%n</Pattern></layout></appender><appender name="ERROR_FILE"class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>ERROR</level></filter><File>${LOG_PATH}/error.log</File><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/error-%d{yyyyMMdd}.log.%i</fileNamePattern><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>500MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><maxHistory>2</maxHistory></rollingPolicy><layout class="ch.qos.logback.classic.PatternLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}-%msg%n</Pattern></layout></appender><!-- 输出到控制台中 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender> <logger name="com.ibatis" level="INFO,DEBUG,ERROR" /><logger name="com.ibatis.common.jdbc.SimpleDataSource" level="INFO,DEBUG,ERROR" /><logger name="com.ibatis.common.jdbc.ScriptRunner" level="INFO,DEBUG,ERROR" /><logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="INFO,DEBUG,ERROR" /><logger name="java.sql.Connection" level="INFO,DEBUG,ERROR" /><logger name="java.sql.Statement" level="INFO,DEBUG,ERROR" /><logger name="java.sql.PreparedStatement" level="INFO,DEBUG,ERROR" /><logger name="jdbc.sqltiming" level="INFO,DEBUG,ERROR"/> <logger name="java.sql.ResultSet" level="INFO,DEBUG,ERROR" /><root level="DEBUG"> <appender-ref ref="INFO_FILE" /><appender-ref ref="ERROR_FILE" /> <appender-ref ref="STDOUT" /></root></configuration>第二个文件是application.properties,也就是springboot的配置文件,完整代码如下:
server.sessionTimeout=72000#访问网站的路径http://ip:port/hb_partnerserver.contextPath=/springbootspring.profiles.active=testmybatis.mapperLocations=classpath:mapper/*.xmlmybatis.typeAliasesPackage=com.springboot.model###########################################################THYMELEAF (ThymeleafAutoConfiguration)########################################################spring.thymeleaf.prefix=classpath:/templates/spring.thymeleaf.suffix=.htmlspring.thymeleaf.mode=HTML5spring.thymeleaf.encoding=UTF-8# ;charset=<encoding> is addedspring.thymeleaf.content-type=text/html# set to false for hot refreshspring.thymeleaf.cache=falsespring.devtools.restart.exclude=static/**,public/**,templates/**#(这里是限制的文件大小)multipart.maxFileSize=50Mbmultipart.maxRequestSize=50Mb
第三个文件是application-test.properties,你也可以把test改成其他的名字,都可以,但是注意格式,application-{自定义名字}.properties,这个格式是规定的,而且这里修改名字后,要在第二个配置文件application.properties中将spring.profiles.active=test,将这个test改成对应的自定义的那个名字
,这个文件主要是用来放数据源配置的,比如有2个数据库,一个是测试库,还有一个是正式库,这里就可以有2个这个文件,分别配置不同的数据源,然后根据需要选择其中的;
下面是application-test.properties的完整代码:记得下面数据源的配置是我个人的,所以大家在使用的时候,需要根据自己数据库地址,密码等改成自己的!!
#访问项目端口号server.port = 8089application.hbBizApi =http://wxtest.jbx188.com/hb-biz/#session超时时间server.session-timeout=72000###########################################################datasource#########################################################数据源spring.datasource.name= test#数据源地址spring.datasource.url=jdbc:mysql:replication://localhost:3306,localhost:3306/SpringBoot?characterEncoding=utf-8&allowMultiQueries=true#数据源账号密码spring.datasource.username=rootspring.datasource.password=123456#数据库连接池,设置配置spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.driver-class-name=com.mysql.jdbc.ReplicationDriverspring.datasource.filters= statspring.datasource.maxActive= 20spring.datasource.initialSize= 1spring.datasource.maxWait= 20000spring.datasource.minIdle= 1#spring.datasource.maxIdle=20spring.datasource.timeBetweenEvictionRunsMillis= 20000spring.datasource.minEvictableIdleTimeMillis= 300000spring.datasource.validationQuery=select 'x'spring.datasource.testWhileIdle= truespring.datasource.testOnBorrow= falsespring.datasource.testOnReturn= falsespring.datasource.poolPreparedStatements=truespring.datasource.maxOpenPreparedStatements= 20#设置Tomcat最大线程数,默认值为200server.tomcat.max-threads=800#设置Tomcat编码server.tomcat.uri-encoding=UTF-8# 存放Tomcat的日志、Dump等文件的临时文件夹,默认为系统的tmp文件夹(如:C:\Users\Angel\AppData\Local\Temp)server.tomcat.basedir=D:/springboot#设置打印日志logging.config=classpath:logback.xml#日志文件目录logging.path=e:/git/partner/loglogging.level.root=warn
第四个文件是generatorConfig.xml,mybatis的配置文件,用来自动生成mapper.java,mapper.xml和model的,完整代码如下:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration> <!--数据库驱动--> <!-- 数据库connector-jar的位置,因为使用的是maven,所以位置应该在.m2文件夹里 --> <classPathEntry location="/Users/wujuepeng/.m2/repository/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar"/> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true"/> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--数据库链接地址账号密码--> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/SpringBoot" userId="root" password="123456"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!--生成Model类存放位置--> <!--targetPackage是生成的model类放在哪个包里面 --> <!--targetProject是包的地址 --> <javaModelGenerator targetPackage="com.springboot.model" targetProject="/Users/wujuepeng/Desktop/springboot/src/main/java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!--生成映射文件存放位置--> <sqlMapGenerator targetPackage="mapper" targetProject="/Users/wujuepeng/Desktop/springboot/src/main/resources" > <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!--生成Dao类存放位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.springboot.mapper" targetProject="/Users/wujuepeng/Desktop/springboot/src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- tableName是数据库表名, domainObjectName是生成的domain类名, 剩下的全部为false就好了--> <table tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context></generatorConfiguration>
在这个generatorConfig.xml配置文件中,需要改的东西有6个地方:大家一定要注意!!
1)下面这个是mysql-connect的jar,在maven项目中,jar包都是网上下载下来的,一般是在电脑的C盘里面有一个.m2文件夹,大家可以找一下,我这里是mac版本的所以没有C盘,找到mysql-connector-java-xxx.jar,然后改成你的地址。
<classPathEntry location="/Users/wujuepeng/.m2/repository/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar"/>
2)下面这个改的就比较简单了,mysql地址和账号密码。
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/SpringBoot" userId="root" password="123456"></jdbcConnection>3)下面改的是自动生成model类,放在什么位置,需要修改2个地方,一是targetPackage是model类放在什么包下面,二是targetProject是项目在电脑的什么位置,可以看到地址是到项目里面的java包,大家根据自己的地址进行修改就好了。
<!--生成Model类存放位置--><!--targetPackage是生成的model类放在哪个包里面 --><!--targetProject是包的地址 --><javaModelGenerator targetPackage="com.springboot.model" targetProject="/Users/wujuepeng/Desktop/springboot/src/main/java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/></javaModelGenerator>4)下面是对mapper.xml文件进行修改,targetPackage是在哪个包下,一开始我就让大家在resources下面建立了一个mapper文件包,就是用来这里放置自动生成的mapper.xml;所有下面只需要修改下targetProject的位置,也就是resources在电脑里面的位置。
<!--生成映射文件存放位置--><sqlMapGenerator targetPackage="mapper" targetProject="/Users/wujuepeng/Desktop/springboot/src/main/resources" > <property name="enableSubPackages" value="true"/></sqlMapGenerator>5)下面是用来生成mapper.java文件的,同意的修改两个地方,1是targetPackage,也就是mapper.java文件放在哪个包下面,二是targetProject,也就是你的targetPackage包是在哪个目录下面的,通常都是在java文件包下面的,所以就是修改你的java文件包在你的电脑的什么位置。
<!--生成Dao类存放位置--><javaClientGenerator type="XMLMAPPER" targetPackage="com.springboot.mapper" targetProject="/Users/wujuepeng/Desktop/springboot/src/main/java"> <property name="enableSubPackages" value="true"/></javaClientGenerator>
6)下面是数据库表的位置,既然是自动生成,当然要根据数据库表来自动生成类咯,下面tablename是指数据库的表名字,然后domainObjectName是指自动生成的model叫什么名字,然后接下来的就全是false咯,注意,下面我就写了一条,也就是一个表或者一个类的自动生成,你有多个表,同时也可以一起生成,多加几条就好了,将tableName和domainObjectName改一下就可以。
<!-- tableName是数据库表名, domainObjectName是生成的domain类名,剩下的全部为false就好了--><table tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
5,文件都加好了,resources目录结构如下图所示:
6,接下来需要在java文件包下面建立包,com.xxx.xxx的形式大家都清楚,在里面有一个main包,在main包的下面建立一个ApplicationApp的类,类的完整代码内容如下:
package com.springboot.main;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.transaction.annotation.EnableTransactionManagement;@SpringBootApplication@EnableTransactionManagementpublic class ApplicationApp { public static void main(String[] args) { SpringApplication.run(ApplicationApp.class, args); }}
里面是一个main方法,在springboot中都是靠main方法运行程序的,在类的上面有2个注解,第一个是@SpringBootApplication是springboot应用的注解,第二个是@EnableTransactionManagement是事务管理的注解。
添加好后,如下图所示:
7,现在springboot就搭建好了,可以直接点击直接运行main方法,如下图:
8,运行成功后,在控制台会出现下面样式:
而且在控制台中没有报错,说明你的springboot就搭建成功了
接下来是对springboot如何自动生成model,mapper.java,mapper.xml及开发项目的介绍请查看 springboot搭建和开发(下)
- springboot搭建和开发(上)
- springboot搭建和开发(下)
- idea上快速搭建springboot
- SpringBoot和PostGIS环境搭建(Hibernate5)
- springboot 构建(一)初步搭建springboot
- SpringBoot(一) 使用Eclipse搭建SpringBoot开发环境
- eclipse+gradle+springBoot搭建开发环境
- springboot微服务搭建(一):搭建springboot框架
- springboot项目搭建(一)
- SpringBoot (一)环境搭建
- SpringBoot开发详解(一)--初识SpringBoot
- SpringBoot环境搭建和返回JSON 字符串
- 基于springboot和dubbo搭建SOA服务
- SpringBoot和PostGIS环境搭建(Hibernate4)
- springboot开发(yml配置和注解解析)
- SpringBoot搭建
- springboot搭建
- springboot搭建
- Inno Setup入门(十六)——Inno Setup类参考(2)
- 10.28/29作业
- linux学习第十六篇:LVM,磁盘故障小案例
- 日期控件的使用
- 人工智障学习笔记——机器学习(2)线性模型
- springboot搭建和开发(上)
- Struts2拦截器原理以及实例
- 开放端口的设备上传播病毒
- SSM整合(一)新建一个工程
- IOS 自定义tabbar,并给tabbar按钮加载网络图片
- WebStorm mac版破解方法
- delphi FMX gridlayout与gridpannellayout
- Shell之判断程序是否运行-yellowcong
- asp.net页面生命周期