Spring Boot 入门集成小实例 无web

本文介绍了如何从零开始搭建一个无Web的Spring Boot项目,包括新建MySQL数据库、创建Spring Boot项目、配置pom.xml、设置文件目录、编写代码如SuperEntity、User、Repository、Service等,并特别提示了Lombok插件的安装和运行前的准备步骤。文章结尾推荐了Navicat Premium 12作为数据库管理工具,并强调Spring Boot的易用性。

第一步 新建MySQL数据库
这里写图片描述

第二步 新建springBoot项目
这里写图片描述

第三步 配置pom.xml

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

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

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

        <!-- QuerydslPredicateExecutor -->
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
            <version>${querydsl.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-jpa</artifactId>
            <version>${querydsl.version}</version>
        </dependency>

        <!-- getter setter -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- 用以映射实体类 自动生成表 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.3.5.Final</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- 用以生成Quser的插件  -->
            <plugin>
                <groupId>com.mysema.maven</groupId>
                <artifactId>apt-maven-plugin</artifactId>
                <version>1.1.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/generated-sources/java</outputDirectory>
                            <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

第四步 新建包类接口 文件目录如下
这里写图片描述

第五步 配置application.properties
这里写图片描述
第六步 开始写代码了

SuperEntity

@MappedSuperclass
@Getter
@Setter
public class SuperEntity implements Serializable{
    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid",strategy = "uuid")
    @Column(length = 64)
    private String id;
    @Column(nullable = true)
    private Date createTime;
    @Version
    private Date version;
}

User

@Entity
@Setter
@Getter
public class User extends SuperEntity{
    private String name;
    private int age;
}

BaseRepository

@NoRepositoryBean
public interface BaseRepository<T> extends JpaRepository<T,String>,QuerydslPredicateExecutor<T> {
}

UserRepository

public interface UserRepository extends BaseRepository<User> {
    List<User> findByAgeIn(String[] ageArr);
}

BaseService

public class BaseService<T> {
    @Autowired
    protected BaseRepository<T> baseRepository;

    public Iterable<T> findAll(Predicate predicate){
        return baseRepository.findAll(predicate);
    }

    public Page<T> findAll(Predicate predicate, Pageable pageable){
        return baseRepository.findAll(predicate, pageable);
    }

    public List<T> findAll(){
        return baseRepository.findAll();
    }

    public <S extends T> S save(S entity){
        return baseRepository.save(entity);
    }

    public boolean exists(Predicate predicate){
        return baseRepository.exists(predicate);
    }
}

UserService

@Service
@Transactional
public class UserService extends BaseService<User>{

}

ViewDataPage

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class ViewDataPage {
    private Object rows;
    private long records;
    private int page;
    private int total;

    public static ViewDataPage of(Page page){
        return new ViewDataPage(page.getContent(),page.getTotalElements(),page.getNumber()+1,page.getTotalPages());
    }
}

UserController

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

    @Autowired
    private UserService userService;

    @RequestMapping("/list")
    public Object findAllList(@QuerydslPredicate(root = User.class)Predicate predicate, String s, Pageable
            pageable){
        return ViewDataPage.of(userService.findAll(predicate, pageable));
    }
}

注意事项

若是lombok报错 则要安装该插件
这里写图片描述
最后一定要记得运行前在该项目命令行下 执行mvn clean compile 在target下生成Quser文件 项目才能成功运行

项目最后结果
这里写图片描述

记得自己在数据库中添加数据 在刷新网页下就好了
Navicat Premium 12 这个是真的好用 推荐一下

以上,是不是很简单,Spring Boot真是太强大了,谁用谁喜欢。

源码点这儿

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值