Spring Boot入门小项目

目录

Maven中的pom.xml文件

引入依赖

认识注解 

项目开始

项目结束


先从最基本的认识 spring boot 来吧!

Maven中的pom.xml文件

Maven 是基于 POM 的理念来管理项目的,因此 Maven 的项目都有一个用来管理项目的依赖及项目的编译等功能的 pom.xml 配置文件。

pom.xml 文件中主要关注以下标签。

1.<dependencies></dependencies> 标签。

此标签包含项目依赖需要使用的多个 <dependency></dependency> 标签。

2.<dependency></dependency> 标签。

<dependency></dependency> 标签主要包括3个子标签,也称为3个坐标。

  • <groupId></groupId>:组织的唯一标签。
  • <artifactId></artifactId>:项目的唯一标识。
  • <version></version>:依赖或项目的版本号。 

3.<properties></properties> 标签。

若要使用自定义的变量,则可以在 <properties></properties> 标签中对变量进行定义,以便在 <dependency></dependency> 标签中引用该变量,达到统一版本号的目的。

引入依赖

本次我们做的项目比较简单所以引入了三个依赖:

<!--    引入JPA依赖    -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--    引入wed依赖    -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--    引入Lombokt依赖   -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

认识注解 

@Data 自动生成 getter/setter、toString、equals、hashCode 方法,以及不带参数的构造方法。

@NonNull 帮助处理 NullPointerException。

@CleanUp 自动管理资源,不用再 finally 中添加资源的 clase 方法。

@Getter/@Setter 自动生成 getter/setter 方法。

@ToString 自动生成 toString 方法。

@EqualsAndHashcode 从对象的字段中重写 equals 和 hashCode 方法。

@NoArgsConstructor/@RequiredArgsConstr-uctor/@AllArgsConstructor 自动生成无参/部分参数/全部参数的构造方法。

@Value 用于注解 final 类。

@Builder 产生复杂的构建器 API 类。

@SneakyThrows 用于处理异常。

@Synchronized 同步方法的转化。

@Log 支持使用各种日志(logger)对象。只需在使用时用对应的注解进行标注,比如使用 Log4j 作为日志库,则在需要加入日志的位置写上注解 @Log4j 即可。

@Override 指定方法重写,只能修饰方法并且只能用于方法重写,不能修饰其他的元素。

@SpringBootApplication  是 SpringBoot 的核心注解,用于表明当前类是 SpringBoot 项目的主程序启动类。

@RestController  是将当前类作为控制层的组件添加到Spring的容器中,同时该类的方法返回 JSON 字符串。

@GetMapping  是设置方法的访问路径并限定其访问方式为 GET,此方法的请求处理路径为 “/hello”。

)@SpringBootConfiguration  表示该类为 Spring Boot 配置类,并可以被组件扫描器扫描。由此可见,@SpringBootConfiguration 注解的作用和 @Configuration 注解的作用相同都是标识一个可以被组件扫描器扫描的配置类,只是 @SpringBootConfiguration  注解被 Spring Boot 重新进行了封装和命名。

)@EnableAutoConfiguration  注解表示开启 SpringBoot 的自动配置功能,从而减轻开发者搭建环境和配置的负担,它是 Spring Boot 最重要的注解之一,也是实现自动化配置的注解,具有非入侵性。

@ComponentScan  注解是一个组件包扫描器,用于将指定包中的注解类自动装配到 Spring 的容器 Bean 中。

@ConfigurationProperties 注解一般将配置文件与一个类绑定,将配置文件中的变量值注入该类的成员变量中。

@Value 注解一般将配置文件中的变量值注入当前类的成员变量中。

@Component 注解,表示 Role是 Spring Boot 的组件,在属性上自动获取配置文件中相应的配使用@Value 注解表示对属性注入值,参数“${rolename)”自动获取配置文件中相对应的配置值并将其注入属性中。

@Autowired 注解对 Role 自动注人属性值。

@Configuration 注解定义一个配置类,@Configuration 注解会结合@Bean 注解配置Bean 对象。

@Bean 注解进行组件配置,方法的返回对象注入 Spring 容器中(类似于 XML 配置文件中的<bean>标签配置),表示当前方法的返回值是一个 Bean。

@Entity 说明这个 class 是实体类。

@GeneratedValue 用于标注主键的生成策略,通过strategy 属性指定。 

项目开始

今天这个小项目主要包括显示、新增和修改等功能,我们使用一个资产管理的几个小功能实现,具体开发步骤如下。

1.先创建 Spring Boot 项目,引入依赖(依赖就是上面的3个依赖,如图中勾选依赖即可),项目可以根据图片配置。

2.创建资产类型类。

创建资产类型类 SysAssetTypr ,代码如下。

@Entity(name="sys_asset_type")
@Data
public class SysAssetType implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private Long pid;
    private String name;
    @Column(name="create_time",nullable = false)
    private Long createTime;
    private Long createBy;
    private Long updateTime;
    private Long updateBy;
    @Column(name="super_id",nullable = false)
    private Long superId;
    private Integer delFlag;
}

 3.创建资产类型 Dao 层接口

创建资产类型 Dao 层接口 SysAssetTypeDao,代码如下。

public interface SysAssetTypeDao extends JpaRepository<SysAssetType,Integer> {
    //根据id查询资产
    List<SysAssetType> getSysAssetTypeByIdEquals(Integer id);
    //根据资产名称查询资产类型
    List<SysAssetType> getSysAssetTypeByNameStartingWith(String name);
    //查询所有资产类型
    @Query("select s from sys_asset_type s")
    List<SysAssetType> getAllSysAssetType();
    //根据上一级id查询所有资产类型
    List<SysAssetType> getAllSysAssetTypeBySuperId(Integer super_id);
}

4.创建资产类型服务层接口与实现类。

创建资产类服务层接口 SysAssetTypeService,代码如下。

public interface SysAssetTypeService {
    //新增资产类型
    public void saveSysAssetType(SysAssetType sysAssetType);
    //根据id查询资产类型
    public List<SysAssetType> getSysAssetTypeByIdEquals(Integer id);
    //根据资产名称查询资产类型
    public List<SysAssetType> getSysAssetTypeByNameStartingWith(String name);
    //查询所有资产类型
    public List<SysAssetType> getAllSysAssetType();
    //根据上一级id查询所有资产类型
    public List<SysAssetType> getAllSysAssetTypeBySuperId(Integer super_id);
}

 创建资产类型服务层实现类 SysAssetTypeServiceImpl,代码如下。

@Service
public class SysAssetTypeServiceImpl implements SysAssetTypeService{
    @Autowired
    SysAssetTypeDao sysAssetTypeDao;

    //新增资产类型
    public void saveSysAssetType(SysAssetType sysAssetType){
        sysAssetTypeDao.save(sysAssetType);
    }

    //根据id查询资产类型
    public List<SysAssetType> getSysAssetTypeByIdEquals(Integer id){
        return sysAssetTypeDao.getSysAssetTypeByIdEquals(id);
    }

    //根据资产名称查询资产类型
    public List<SysAssetType> getSysAssetTypeByNameStartingWith(String name){
        return sysAssetTypeDao.getSysAssetTypeByNameStartingWith(name);
    }

    //查询所有资产类型
    public List<SysAssetType> getAllSysAssetType(){
        return sysAssetTypeDao.getAllSysAssetType();
    }

    @Override
    public List<SysAssetType> getAllSysAssetTypeBySuperId(Integer super_id) {
        return null;
    }
}

5.创建资产类型控制类。

创建资产类型控制类 SysAssetTypeController,代码如下。

@RestController
public class SysAssetTypeController {
    @Autowired
    SysAssetTypeService sysAssetTypeService;

    //新增资产类型
    @GetMapping("/save")
    public void saveSysAssetType(){
        SysAssetType sysAssetType=new SysAssetType();
        sysAssetType.setPid(21L);
        sysAssetType.setName("张三");
        long createTime=(new Date()).getTime();
        System.out.println("createTime="+createTime);
        sysAssetType.setCreateTime(createTime);
        sysAssetType.setCreateBy(null);
        sysAssetType.setUpdateTime(null);
        sysAssetType.setUpdateBy(null);
        sysAssetType.setSuperId(21L);
        sysAssetType.setDelFlag(0);
        System.out.println(sysAssetType.getSuperId());
        sysAssetTypeService.saveSysAssetType(sysAssetType);
        System.out.println(sysAssetType);

    }

    //查询所有资产类型
    @GetMapping("/getAll")
    public void getAllSysAssetType(){
        List<SysAssetType> sysAssetTypeList=
                                    sysAssetTypeService.getAllSysAssetType();
        System.out.println(sysAssetTypeList);
    }

    //根据上一级id查询所有资产类型
    @GetMapping("/getAllBySuperId/")
    public void getAllSysAssetTypeBySuperId(@PathVariable Integer superId){
        List<SysAssetType> sysAssetTypeList=
                sysAssetTypeService.getAllSysAssetTypeBySuperId (superId);
        System.out.println(sysAssetTypeList);
    }

}

 (注:这里写的时候容易弄错)

项目结束

因为博主比较懒就直接在控制台看效果了。

启动项目,在网页中输入 localhost:8080/saveicon-default.png?t=N7T8http://localhost:8080/save资产管理相关的数据就会显示在控制台里就会出现图中的效果。

 启动项目,在网页中输入localhost:8080/getAllicon-default.png?t=N7T8http://localhost:8080/getAll

 

 到这小项目就结束啦!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值