springboot项目快速搭建

搭建框架

快速搭建springboot项目的步骤如下:

(1)访问 http://start.spring.io/

(2)选择一些选项(一般不需要修改):使用maven,java,以及springboot的版本号。dependency先不添加,我们观察一下系统会默认生成什么依赖。

(3)点击GENERATE,把zip文件夹解压到某个文件夹并用idea打开。

(4)找到maven的pom文件,先进行一些依赖的处理问题。(自动添加依赖到仓库)

(5)在导入依赖的时候,我的系统进行了报错:Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found,那么此时只要添加正确的version即可。

(6)我们发现必需依赖含有两个,一个是spring-boot-starter,一个是spring-boot-starter-test。

(7)运行程序,发现一运行项目就结束了,此时我们要添加一个web的依赖使项目成为一个网页项目,这样它就不会一启动就结束。

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

再次运行,成功。

我们可以发现在最主要的包下面仅有一个DemoApplication.java文件用来启动项目。此时,我们需要在这个包下面再新建若干的包。

我们假设有一个user,它有属于自己的name和email。我们的任务是将其成功存入数据库。

Controller

这个包名为controller,位于控制层,作用是获取前端传来的参数,并且分配任务给业务层。

创建一个类名为UserController.java,并在其中写入如下代码:

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    UserService userService;

    @GetMapping("/add/{name}/{email}")
    public ResponceVO addUser(@PathVariable("name") String name,@PathVariable("email") String email) {
        return userService.addUser(name,email);
    }
    
}

@RestController的作用等同于@Controller + @ResponseBody。

@Controller注解,表明了这个类是一个控制器类。

@ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。

如果要求方法返回的是json格式数据,而不是跳转页面,可以直接在类上标注@RestController。

@RequestMapping意味着想要访问这个controller,就必须要在路径中加上/user。

在这个类中,有一个userService,它连通控制层和业务层,是自动装配的(@Autowired)。

@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。该注解将HTTP Get 映射到特定的处理方法上。也就是说要使用这个方法,就必须要在路径上加上/add/{name}/{email}。

@PathVariable表示上面花括号里面的参数会用到下面的代码中,并且将其当做了参数。

ResponceVO是一个返回类型,稍后会谈。

我们在方法中将工作分发给userService的addUser方法。

这就是一个简易的controller。

bl

这个包中会定义一些接口,这些接口一般都是自动装配的,用来连通业务层和控制层。

我们添加一个文件UserService.java,并加入如下代码:

public interface UserService {
    ResponceVO addUser(String name,String email);
}

blImpl

这个包所在的位置的业务层,主要掌控业务的具体实现逻辑。

创建文件UserImpl.java,在其中加入如下代码:

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    UserMapper userMapper;

    @Override
    public ResponceVO addUser(String name,String email) {
        User user=new User(name,email);
        userMapper.addUser(user);
        return new ResponceVO(true,"id is "+user.getId());
    }
    
}

@Service表示它位于业务层。

这个类实现了上面所说的接口,也有一个自动装配的userMapper,这是业务层和持久层之间的通道。

在具体实现中,我们创建了一个user对象,并通过userMapper的addUser方法加入了数据库,最后返回了responceVO对象。

po

这个包里面会包含很多实体类(譬如user)。

我们创建文件User.java,并加入如下代码:

@Data
public class User {

    int id;

    String name;

    String email;

    public User(String Name,String Email){
        name=Name;
        email=Email;
    }
    
}

@Data是lombok注解,用来自动生成getter和setter方法。

它有一个id,name,email属性和一个构造方法。

vo

这是一个和前端交互数据的包。有时候前端会传来一个对象而不是一些简单的数据类型,此时就要用vo的类来接受;同样的,返回前端的类型一般也用vo来表示。

我们暂时只添加一个ResponceVO.java这个文件。

@Data
public class ResponceVO {

    boolean success;

    String message;

    public ResponceVO(boolean s,String m){
        success=s;
        message=m;
    }
    
}

success和message表示成功与否以及一些必要信息。

data

这个包位于持久层,也就是维持和数据库的交互,我们使用mybatis框架来进行交互。

首先在pom.xml文件中添加如下依赖:

<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<scope>runtime</scope>
</dependency>

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.16.10</version>
	<scope>provided</scope>
</dependency>

紧接着,我们在data包里面添加一个接口userMapper。

@Mapper
@Repository
public interface UserMapper {

    void addUser(@Param("User") User user);

}

@Mapper是mybatis的注解,意味着此处需要映射文件。这个注解免除了原来mybatis框架中conf.xml的配置。

@Repository表示它位于持久层。

类中的具体内容和mybatis中一致。

紧接着,我们在resources文件夹中添加一个application.yml的配置,用来配置我们的数据库,以及映射文件的位置。

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver


mybatis:
  mapper-locations: classpath:dataImpl/*/*Mapper.xml

同时在该文件夹下再新建一个文件夹名为dataImpl,在此文件夹中再加上一个文件夹User,User文件夹下增加一个UserMapper.xml文件,其中的内容和mybatis一致。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.data.UserMapper">

    <insert id="addUser"  keyProperty="id" useGeneratedKeys="true" >
        <selectKey keyProperty="User.id" resultType="int" order="AFTER"> select LAST_INSERT_ID() </selectKey>
         insert into mytable(name,email) VALUES (#{User.name},#{User.email})
    </insert>

</mapper>

这个映射文件的作用是把User放进了数据库,并且让数据库自动生成了主键,并且将主键的值重新映射回了User的id属性中。

最后,只要把数据库中初始化mytable表,然后访问如下的url:

http://localhost:8080/user/add/myname/myemail

页面上返回一个responceVO的json文件,而且id也正确,这就成功完成了这么一个功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值