目录
先从最基本的认识 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/savehttp://localhost:8080/save资产管理相关的数据就会显示在控制台里就会出现图中的效果。
启动项目,在网页中输入localhost:8080/getAllhttp://localhost:8080/getAll
到这小项目就结束啦!