Java后端——springboot学习之路(项目实践)第三天

完善类并实现简单的增删改查操作

操作步骤延续上一天的项目。

步骤一 创建springboot启动类

在com.atnanning.servicemsc包下创建启动类MscApplication,并增添注解@SpringBootApplication。

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

注意创建的路径在com.atnanning.servicemsc下。
在这里插入图片描述

步骤二 编写后台管理api接口

在包controller的McsUserController类中编写以下代码,用来查询数据库中的数据。

@Autowired
    private McsUserService mcsUserService;
    @GetMapping
    public List<McsUser> list(){
        return mcsUserService.list(null);
    }

如果此时直接运行启动类,会出现以下错误。
在这里插入图片描述
在这里插入图片描述
解决方案是添加@MapperScan注解,首先创建包config,在包中创建配置类McsConfig,在类中添加以下两个注解:@Configuration和@MapperScan。代码如下:

@Configuration
@MapperScan("com.atnanning.servicemsc.mapper")
public class MscConfig {
}

之后点击运行启动类,启动成功后,在网页输入http://localhost:8001/servicemcs/mcsuser,端口8001后面的内容查看controller类即可。
在这里插入图片描述
最终可以在网页端看到数据库中的数据:
在这里插入图片描述

步骤三 实现删除功能

与上面在controller中查询方式类似,在controller中实现删除功能。
在McsUserController中编写以下代码:

@DeleteMapping("{id}")
    public boolean removeById(@PathVariable String id){
        return mcsUserService.removeById(id);
    }

同时由于我们采用的删除方式是逻辑删除(逻辑删除的含义是不做出真实的删除,删除时将is_deleted从0设置为1,便实现了逻辑删除),在entity中的逻辑修改符增添注解@TableLogic:

@ApiModelProperty(value = "逻辑删除 1(true), 0(false)")
    @TableLogic
    private Boolean isDeleted;

在配置类McsConfig中增添逻辑删除插件:

 /**
     * 逻辑删除插件
     */
    @Bean
    public ISqlInjector sqlInjector() {
        return new LogicSqlInjector();
    }

删除时需要传入参数id,我们借助swagger来实现,这样便于前后端分离开发。所以步骤四是用来配置swagger,配置完成后,再进行删除操作。

步骤四 部署Swagger

1.在crowdsensing_parent下创建子模块common. 与之前创建service子模块一样,选择maven工程。同样删除src。
在这里插入图片描述
2.在common的pom.xml中导入以下依赖:

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <scope>provided </scope>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <scope>provided </scope>
        </dependency>
        <!--lombok用来简化实体类:需要安装lombok插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided </scope>
        </dependency>
        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <scope>provided </scope>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <scope>provided </scope>
        </dependency>
        <!-- redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!-- spring2.X集成redis所需common-pool2
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>2.6.0</version>
        </dependency>-->
    </dependencies>

3.在common下创建孙子模块service_base.
在这里插入图片描述
4.在service_base- ->src - ->main- - >java中创建包com.atnanning.servicebase,并在包中创建Swagger的配置类SwaggerConfig,在类中复制以下内容:

 @Bean
    public Docket webApiConfig(){

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();

    }

    private ApiInfo webApiInfo(){

        return new ApiInfoBuilder()
                .title("网站-课程中心API文档")
                .description("本文档描述了课程中心微服务接口定义")
                .version("1.0")
                .contact(new Contact("Helen", "http://atguigu.com", "55317332@qq.com"))
                .build();
    }

5.在字模块service中的pom.xml中引入service_base,复制以下内容:

			<dependency>
            <groupId>com.atnanning</groupId>
            <artifactId>service_base</artifactId>
            <version>0.0.1-SNAPSHOT</version>
             </dependency>

6.在servicemcs的启动类McsApplication中加入注解:

// An highlighted block
@ComponentScan(basePackages = {"com.atnanning"})

完成上述操作后,运行McsApplication启动类,在浏览器中输入http://localhost:8001/swagger-ui.html,若出现以下情况,一种可能的原因是未在启动类McsApplication中增添注解@ComponentScan(basePackages = {“com.atnanning”}),另一种是未在SwaggerConfig中增添注解@Configuration和@EnableSwagger2。在这里插入图片描述
正常启动后的界面是:
在这里插入图片描述
可以看到之前写的查询方法和删除方法。
输入100,点击try it out。
在这里插入图片描述
返回的结果是true(其实100这个id数据库中没有,这个应该是个bug,不论有没有数据,只要功能正常,删除都会返回true,但不影响整体效果)
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值