Spring boot项目搭建入门
来源:互联网 发布:淘宝店铺怎样才能贷款 编辑:程序博客网 时间:2024/05/29 17:02
前言
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
它是一个“微框架”,适合快速搭建项目,通过近乎零配置的方式达到快速开发的目的。当然,由于默认的设置太多,如果有特殊需求依然会涉及一系列配置文件。
本篇文章记录了搭建一个简单的入门项目的具体步骤和遇到的问题。
新建项目
Spring官方出了一个开发工具,叫做Spring Tool Suite™(STS),是依据Eclipse添加了Spring插件的集合版。使用STS开发Spring boot程序,新建项目,运行会更简单一点。下载地址:http://spring.io/tools/sts。
新建操作很简单,打开STS以后,File->New->Spring Stater Project
新建一个Spring boot的项目。
项目的配置项
日志
默认情况下,只要配置log文件的位置就可以。默认使用的是logback的实现。
在application.properties
中加入logging.file=D:/hengbao/springboot.log
即可打开日志操作。
默认的log打印级别是info
级别,Spring boot在启动的时候会打印一大堆debug
级别的log信息,所以不建议将log级别降低到debug
级别。
打印log的示例代码:
public class Test { static final Logger log = LoggerFactory.getLogger(Test.class); ... public void func() { log.info("hello"); }}
服务器相关配置项
端口号配置
在application.properties
中加入:
#server settingserver.port=80
编码配置
在application.properties
中加入:
spring.http.encoding.charset=UTF-8spring.http.encoding.enabled=truespring.http.encoding.force=true
devtools配置
devtools用作开发时的快速调试使用,可以动态的加载代码、页面、配置文件的加载项。
在pom.xml
中添加依赖:
<!-- 开发时使用的工具包 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional></dependency>
使用mysql数据库
在pom.xml
中添加依赖:
<!-- mysql的数据库连接依赖 --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope></dependency>
使用JSP替代默认的模板作渲染
1、添加jsp的依赖
<!-- jsp的支持三项 --><dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId></dependency><dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId></dependency><dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId></dependency>
2、在application.properties
文件中加入jsp的配置项
#jsp settingspring.mvc.view.prefix=/WEB-INF/jsp/spring.mvc.view.suffix=.jsp
3、在controller中返回jsp的名字就可以访问jsp页面。示例:
@RequestMapping("/hello2")public ModelAndView hello2() { ModelAndView mav = new ModelAndView("12345"); mav.addObject("name", "ligl01"); return mav;}
数据库源配置:Druid
百度来的介绍:
Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss
DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。
1、添加依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.29</version></dependency>
2、在配置文件application.properties
中加入配置项
参考:http://blog.csdn.net/isea533/article/details/50359390
# druid datasource settingspring.datasource.name=testspring.datasource.url=jdbc:mysql://192.168.113.51:3306/test?useUnicode=true&characterEncoding=utf8spring.datasource.username=rootspring.datasource.password=rootspring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.filters=statspring.datasource.maxActive=20spring.datasource.initialSize=1spring.datasource.maxWait=60000spring.datasource.minIdle=1spring.datasource.timeBetweenEvictionRunsMillis=60000spring.datasource.minEvictableIdleTimeMillis=300000spring.datasource.validationQuery=select 'x'spring.datasource.testWhileIdle=truespring.datasource.testOnBorrow=falsespring.datasource.testOnReturn=falsespring.datasource.poolPreparedStatements=truespring.datasource.maxOpenPreparedStatements=20spring.jpa.database=MYSQLspring.jpa.show-sql=true
这样就可以使用druid的数据源。
添加jpa的数据库支持
参考:http://www.jianshu.com/p/38d27b633d9c
因为jpa的实现是Hibernate,所以普通的增删改查简单,但是要想深入优化需要精通Hibernate和sql语句。相对来说MyBatis是基于sql语句的,优化起来不会在Hibernate上遇到瓶颈,但是对新手不友好,所以选用jpa来作为快速开发的框架。
1、添加依赖
<!-- spring data jpa --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency>
2、配置代码自动建表
在application.properties
中配置:
spring.jpa.properties.hibernate.hbm2ddl.auto=update
属性说明:
spring.jpa.properties.hibernate.hbm2ddl.auto是hibernate的配置属性,其主要作用是:自动创建、更新、验证数据库表结构。该参数的几种配置如下:
- create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
- create-drop:每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
- update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第一次运行起来后才会。
- validate:每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。
3、创建实体类
在entity包下创建对应数据库的实体类,如:
@Entity@Table(name="user", catalog="test")public class User implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy= GenerationType.IDENTITY) @Column private Long id; @Column private String name; @Column private String password; //省略get、set方法
@Table(name=”user”, catalog=”test”)
这个属性中name表示表名称,catalog表示数据库名称
@Column可以添加name属性,表示数据库中的字段名字可以和变量名字不一样
4、继承JpaRepository
写一个接口继承JpaRepository,这个接口就默认包含了增删改查的四个方法,通过@Autowired自动注入就能使用。
自定义接口代码如下:
import org.springframework.data.jpa.repository.JpaRepository;import com.example.dao.entity.User;public interface UserRepository extends JpaRepository<User, Long> {}
调用示例:
@Autowired UserRepository userRepository; 。。。 List<User> userList = userRepository.findAll();
导出war包部署
1、设置STS的jdk
默认STS中使用的编译环境是jre,maven要求使用jdk来进行编译,增加一个jdk的配置项,并设置为默认 Window->Preferences->Java->Installed JREs
选择Add
,增加jdk,如图:
2、设置Tomcat的版本
如果不设置版本号,默认的war包中会有8.0版本的jar包,导致不能在低版本的Tomcat上运行
参考:http://blog.csdn.net/asdfsfsdgdfgh/article/details/52127562
<properties> …… <!-- tomcat的版本号,用于打war包时对应特定的tomcat版本 --> <tomcat.version>7.0.73</tomcat.version></properties>
3、设置导出war包的默认名称
默认导出来的war包带有版本号信息,在tomcat上访问的时候名字太长不方便访问
在pom.xml文件下的build选项中,加入finalName配置即可修改:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <finalName>blecardlogin</finalName></build>
4、导出war包
项目右键Run As->Maven build…
。
输入package
命令,等待编译完成,war包将输出到target文件夹下,如图:
参考资料
- Spring Boot Reference Guide
- Spring Boot 入门 - 偶尔记一下 - 博客频道 - CSDN.NET
- 13. Build systems
- spring boot(一):入门篇 - 纯洁的微笑 - 博客园
- mysql重连,连接丢失:The last packet successfully received from the server–转载 - 一天不进步,就是退步 - 博客园
- springboot(六):如何优雅的使用mybatis
- Spring Boot中使用Spring-data-jpa让数据访问更简单、更优雅 - 简书
- 深入学习spring-boot系列(三)–使用thymeleaf模板 - I am jison - ITeye技术网站
- SpringBoot应用部署到Tomcat中无法启动问题 - 晨之风的专栏 - 博客频道 - CSDN.NET
- spring_boot 发布成war包 ,部署到外部的tomcat - 偶是一只小小鸟~ - 博客频道 - CSDN.NET
- Spring Boot实战之配置使用Logback进行日志记录 - sun_t89的专栏 - 博客频道 - CSDN.NET
- 使用Spring Boot&Swagger快速构建REST API并生成优美的API文档 - 简书
- Spring Boot学习笔记 - 整合Swagger2自动生成RESTful API文档 - Ricky - 博客频道 - CSDN.NET
- Spring boot项目搭建入门
- 搭建spring boot集成mybatis项目入门
- spring boot 搭建环境入门
- 【框架搭建】spring boot入门
- spring-boot项目简单搭建
- 快速搭建Spring Boot项目
- 一、spring boot项目搭建
- Spring boot项目搭建案例
- spring boot项目基础搭建
- Spring Boot 项目快速搭建
- Spring Boot+MongoDB项目搭建
- Spring Boot+Redis项目搭建
- Spring Boot / Spring MVC 入门实践 (一) :环境搭建与第一个项目
- Spring Boot / Spring MVC 入门实践 (一) :环境搭建与第一个项目
- Spring Boot / Spring MVC 入门实践 (一) :环境搭建与第一个项目
- 【Spring Boot教程】快速搭建spring boot项目工程
- Spring boot 快速入门 - 环境搭建
- spring-boot的环境搭建,入门
- Java并发之ReentrantLock详解
- Tex总结
- Spring MVC @SessionAttributes注解
- 记一次jfinal事务大坑
- 浅谈jQuery中attr()和prop()的异同
- Spring boot项目搭建入门
- 红黑树 自顶向下插入操作(一)
- 论文笔记——《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》
- retrofit gson 解析json数据失败问题“com.google.gson.stream.MalformedJsonException:”
- python实现跨excel的工作表sheet之间的复制
- 分桶法和平方分割
- angularjs巧用双向数据绑定实现手风琴效果
- 【POJ2891】Strange Way to Express Integers-解一元线性同余方程组
- 抠脚大汉之教你在mfc下使用access数据库(c++方法)