[Spring boot] 萌新首次接触的迷茫与反思(一课一得)

初遇

        步入新学期后,我也正式开始接触Spring boot。初见时,它对我来说是非常抽象的概念。关于配置、注解等等都是第一次碰到的新名词。而老师讲解的也比较简洁又快,在我还没理解时就已经开始着手环境配置,我也只能及时跟上。我的第一节Spring boot课就在懵懵懂懂中度过。

     渐解

         如同第一次碰到c语言一样,虽然初次听理论完全不清楚,但是在一次又一次的实践中,只要不是无可救药的人都会慢慢总结经验。

   在老师的带领下,我们将环境配置完成后就立马开始对项目的建立。在这过程中,我也逐渐对项目的结构组成有一定的认知:entity:实体层、service:负责业务逻辑层、mapper:数据持久层、controller:控制层,并理清了他们之间的调用关系。对于一些常用的注解也在不断的使用中了解了它的用途。如下:

@Service
@Controller
@Repository
@Component
@Autowired
@Resource

@Service:注解在类上,表示这是一个业务层bean

@Controller:注解在类上,表示这是一个控制层bean

@Repository: 注解在类上,表示这是一个数据访问层bean

@Component: 注解在类上,表示通用bean ,value不写默认就是类名首字母小写

@Autowired:按类型注入.默认属性required= true

@Resource: 按名称装配。

在此基础上我也跟着老师完成了一个及其简单的项目:

     困境

         当然这其中也有相当多的失误,和新手时期会犯的错误。手打代码失误、格式不对、中英符号不分等等这些自不必多说,最常遇到的当属依赖引入错误、方法错误等等。因为老师也要照顾其他同学,使得我不少的“报红”没有得到及时的解决便要开始下一步,慢慢的,对于学习的挫败感越积越深。特别是学习的中后期,内容越来越深、红线越来越多。

@RequestMapping(value = "/save", method = RequestMethod.POST)
    public String save(@ModelAttribute("vehicle") Vehicle entity
            , @RequestParam("isActive") boolean isActive
            , @RequestParam("parkingLotId") Long parkingLotId
            , @RequestParam("file") MultipartFile file) throws Exception {

        entity.setActive(isActive);
        ParkingLot parkingLot=parkingLotService.getById(parkingLotId);
        entity.setParkingLot(parkingLot);

        //上传图片文件指定目录
        String fileName = System.currentTimeMillis() + "-" + file.getOriginalFilename();//生成文件名
        Path saveTo = Paths.get(savePath, fileName);//设置文件存储的路径
        Files.write(saveTo, file.getBytes());//完成存储文件

        //存储图片url
        entity.setPicUrl("/images/" + fileName);

        boolean result = entity.getId() != null ? service.update(entity) : service.insert(entity);
        return "redirect:/vehicle/list";
    }
//一个图片储存代码,也许对于老手来说并不难,但对学习不多也不深的萌新来说还是很吃力的

在学习之路上,我似乎踏入了泥泞并越陷越深。

       相助

        所幸周围同学都愿意在我困难时伸出援手,让我不至于太过泄气;后来我意识到不能继续这样下去了,于是决定要做出改变。随着越加深入的学习,我越发理解了Spring boot与Java、sql和html等之前所学知识之间的联系。

<body>
<h6>用户id: <span th:text="${}"></span></h6>
<h6>用户名: <span th:text="${}"></span></h6>
<h6>密码: <span th:text="${}"></span></h6>
<h6>加盐: <span th:text="${}"></span></h6>

<a th:href="@{}" class="btn btn-secondary">返回</a>
</body>
drop  table  if exists sys_user;
    create table  sys_user(
        id bigint auto_increment primary key comment '主键',
        username varchar (100) comment '用户账号',
        password varchar (255) comment '用户密码',
        salt varchar (200) comment '加盐'
    ) engine=InnoDB;ALTER TABLE sys_user AUTO_INCREMENT = 1;

在课后巩固基础知识的同时,在课堂上也更加主动的去提问老师和同学。在最后,我也是跟上了老师的步伐,和一个又一个的项目,重拾了学习的信心。

       总结

        在这次学习中除了学到了专业知识,我也是深刻认识到自学与心态调整的重要性,尤其是要懂得去主动问老师和同学。虽然这些都是老生常谈的东西了,但也正是因其普遍存在而又容易忽视才要不断提及,莫要因此而在学习上自我内耗,在生活上无限懊恼。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值