SpringBoot项目环境搭建

一、新建一个Maven工程

使用Spring Boot 新建Maven 工程不在需要建立Maven web工程,只要一般的Maven工程就好了。

二、Maven包的导入

清单如下:

<!-- Inherit defaults from Spring Boot -->
  <parent>
  <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.1.BUILD-SNAPSHOT</version>
  </parent>

<!-- Add typical dependencies for a web application -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- spring data jpa -->
        <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<!-- mysql driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
        <!-- 其他依赖 -->
        <dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
</dependency>
    </dependencies>

    <!-- Package as an executable jar -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- 编译器版本指定 -->
            <plugin>  
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-compiler-plugin</artifactId>  
        <configuration>  
          <source>1.7</source>  
          <target>1.7</target>  
        </configuration>  
      </plugin>  
        </plugins>
    </build>

    <!-- Add Spring repositories -->
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>

    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </repository>
    </repositories>

以上为整个spring boot 构建简单web项目所需要的maven配置文件。
spring-boot-starter-parent:为方便使用,打包了一些比较常用的jar包放在一个包中,开发者只要使用这个包,就可以减少很多包的导入。同时,也可以选择不是用,而根据自己的情况选择性的导入。注:但在我简单的使用过程中发现有的包无法成功下载,导致maven报错,如果有这种情况,请自行添加。
spring-boot-starter-web:该包为web开发包的集合,其中包括tomcat、springMVC等包。
spring-boot-starter-data-jpa:该包为java持久化api的支持,其中包括spring-data-jpa、spring-orm和一些hibernate相关依赖。
其他常用的一些包这里就不在赘述,此外对于repositories的配置,根据官网的解释,如果你使用的是.RELEASE版本的包,可以不添加。

三、代码实现(该示例只为演示效果,所以设计得都很简单)

1、创建实体类

package com.whucker.platform.domain;

@Entity //实体
@Table(name="t_user") //指定表名
public class User {

    @Id //定义主键id
    @GeneratedValue(strategy=GenerationType.AUTO) //自增
    private Long id;
    private String name;
    private int age;
    private int gender;

    //...此处省略get/set
}

2、Repository代码(此处使用的是spring data jpa,由于该文章主要讲解spring boot,所有不在此对jpa做解释)

package com.whucker.platform.repository;

public interface UserRepository extends CrudRepository<User, Long>{

}

*注意:此处在很多博客中我们看到在接口的上方添加@Repository注解,其实并不需要。

3、业务层
(1)接口定义

package com.whucker.platform.service;

public interface IUserService {

    //添加
    void save(User user);
    //删除
    void delete(Long id);
    //修改
    void update(User user);
    //查询单个对象
    User findOne(Long id);
    //查询所有
    List<User> findAll();
}

(2)接口实现

package com.whucker.platform.service.impl;

@Service(value="userService")
@Transactional
public class UserServiceImpl implements IUserService{

    @Autowired
    private UserRepository userRepository;

    @Override
    public void save(User user) {
        this.userRepository.save(user);
    }
    //...此处省略部分代码
}

此处应该注意,@Autowired注入的是jpa框架为我们实现的repository,详情请了解spring-data-jpa,这里就不再过多解释。

4、控制层

package com.whucker.platform.controler;

@RestController
public class IndexManageAction {

    @RequestMapping(value="/")
    public String index(){
        return "欢迎访问首页!";
    }
}

这里的@RestController实际是spring boot为restful风格提供的注解,这样真个Action就支持restful风格的编码了。

5、Application类

package com.whucker.platform;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class);
    }
}

此处是真个项目启动的入口。@SpringBootApplication注解整合了部分注解,只需要使用这一个注解就行了。后面我们对spring boot所提供的常用注解进行解释说明时在做详细的分析,这里不再赘述。

6、最后一个是配置文件
可能有的朋友会说:你不是说spring boot零配置吗,怎么最后还是会有配置文件。其实仔细想想就明白了,其他不配置,至少你用的数据库是什么、账号密码是什么,这些信息总该告诉框架,不然他怎么知道采用什么策略去连接操作呢。因为是基础教程,所以上一个”最低配置”。

spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/spring-boot-db
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update 

这些配置我们默认把它放到项目跟目录下的resoucese文件当中,文件名为:application.properties。为什么要用这个名字,相信大家都能猜到,spring boot采用约定大于配置,这样命名配置文件,框架启动时会自动到项目的根目录查找约定好的配置文件并进行加载。

posted @ 2018-01-11 10:28  journeyIT  阅读(24)  评论(0)    收藏  举报