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,但不影响整体效果)
在这里插入图片描述

当前课程中商城项目的实战源码是我发布在 GitHub 上的开源项目 newbee-mall (新蜂商城),目前已有 9900 多个 Star,本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 商城项目功能的讲解,让大家实际操作并实践上手一个大型的线上商城项目,并学习到一定的开发经验以及其中的开发技巧。商城项目所涉及的功能结构图整理如下: 作者寄语本课程录制于2019年,距今已有一段时间。期间,Spring Boot技术栈也有一些版本升级,比如Spring Boot 2.7.x发版、Spring Boot 3.x版本正式版本。对于这些情况,笔者会在本课程实战项目的开源仓库中创建不同的代码分支,保持实战项目的源码更新,保证读者朋友们不会学习过气的知识点。新蜂商城的优化和迭代工作不会停止,不仅仅是功能的优化,在技术栈上也会不断的增加,截止2023年,新蜂商城已经发布了 7 个重要的版本,版本记录及开发计划如下图所示。 课程特色 对新手开发者十分友好,无需复杂的操作步骤,仅需 2 秒就可以启动这个完整的商城项目最终的实战项目是一个企业级别的 Spring Boot 大型项目,对于各个阶段的 Java 开发者都是极佳的选择实践项目页面美观且实用,交互效果完美教程详细开发教程详细完整、文档资源齐全代码+讲解+演示网站全方位保证,向 Hello World 教程说拜拜技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,可以进一步提升你的市场竞争力 课程预览 以下为商城项目的页面和功能展示,分别为:商城首页 1商城首页 2购物车订单结算订单列表支付页面后台管理系统登录页商品管理商品编辑
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值