Spring boot项目搭建入门

本文详细介绍了如何从零开始搭建Spring Boot项目,包括新建项目、配置日志、服务器设置、数据库连接(使用MySQL和JPA)、Druid数据源的配置,以及导出war包进行部署。适合初学者快速入门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

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 setting
server.port=80
编码配置

application.properties中加入:

spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.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 setting
spring.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.youkuaiyun.com/isea533/article/details/50359390

# druid datasource setting
spring.datasource.name=test
spring.datasource.url=jdbc:mysql://192.168.113.51:3306/test?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.filters=stat
spring.datasource.maxActive=20
spring.datasource.initialSize=1
spring.datasource.maxWait=60000
spring.datasource.minIdle=1
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=select 'x'
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
spring.datasource.maxOpenPreparedStatements=20

spring.jpa.database=MYSQL
spring.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,如图:

增加jdk

2、设置Tomcat的版本

如果不设置版本号,默认的war包中会有8.0版本的jar包,导致不能在低版本的Tomcat上运行
参考:http://blog.youkuaiyun.com/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文件夹下,如图:

war包位置截图

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值