Bootstrap

我的创作纪念日

机缘

提示:可以和大家分享最初成为创作者的初心
例如:

实战项目中的经验分享

在技术选型方面,我们根据项目的需求和团队的技术栈,选择了合适的技术框架和工具。例如,为了实现数据的快速处理和存储,我们选择了高性能的数据库和数据处理技术。同时,我们还注重技术的可扩展性和可维护性,以便未来对系统进行升级和优化。

在团队组建方面,我们邀请了具备丰富经验和专业技能的团队成员参与项目。我们强调团队协作和沟通的重要性,确保团队成员能够互相支持、协作共进。

在系统设计阶段,我们根据需求分析和技术选型的结果,制定了详细的设计方案。我们注重系统的可扩展性、可维护性和安全性,确保系统能够满足未来的需求变化。在开发过程中,我们严格按照项目计划进行,确保了项目的进度和质量。

日常学习过程中的记录

1)Javax.validation是 spring 集成自带的一个参数校验接口,可通过添加注解来设置校验条件。

在Controller上使用 @Valid 或 @Validated 注解 开启校验

public String getuserInfo(@RequestBody @Valid User user){};

 @Validated 和 @Valid 的异同

不同点:

  • 提供者不同:
    • validated 是Spring Validation验证框架对参数的验证机制;
    • valid是 javax 提供的参数验证机制
  • 作用域不同:
    • validated :类,方法,参数
    • valid:方法,字段,构造方法,参数

参数校验常用注解 @Null,@ NotNull,@ NotBlank,@NotEmpty

2)oracle decode函数的使用方法

decode(字段,值1,值2,值3)

这个函数运行的结果是,当字段的值等于值1时,该函数返回值2,否则返回值3。

案例1:比如我要查询某班男生和女生的数量分别是多少?

代码如下:
select decode(性别,男,1,0),decode(性别,女,1,0) from 表

案例2:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用decode完成要求了。

代码如下:
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)

通过文章进行技术交流

当我们成为开发之后的两年之后,就需要去给你自己梳理技术树. 去发现自己的在技术方面的薄弱区. 在开发过程中,也会遇到棘手的需求.在这个过程,我们寻求解决策略,到决定解决方案以及解决BUG的过程都是一次次非常值得分享的经历. 积累的经验和心得,我们会选择用自然语言记录下来,形成文章并在不同的平台上分享。

收获

提示:在创作的过程中都有哪些收获
例如:

1)获得了多少粉丝的关注

2)获得了多少正向的反馈,如赞、评论、阅读量等

3)认识和哪些志同道合的领域同行

比如:后端,Java,Javascript等等。


日常

提示:当前创作和你的工作、学习是什么样的关系
例如:

  • 创作是否已经是你生活的一部分了

创作已经成为许多人生活的一部分‌。对于许多创作者来说,创作不仅仅是工作,更是生活的一部分。创作与生活紧密相连,生活是创作的源泉。

创作的内容往往来源于生活,艺术家从生活中提取有价值的内容,将其浓缩成艺术作品呈现。艺术是生活的提炼,优秀的艺术品总能让人震撼,因为它揭示了生活的本质‌。

  • 有限的精力下,如何平衡创作和工作学习

写博客需要投入时间和精力,这可能会占用一部分工作和学习的时间。因此,合理的时间管理和精力分配是关键。可以通过规划时间表,确保工作、学习和博客创作三者之间的平衡‌。

工作和学习是相互促进的。通过工作实践可以积累经验,这些经验可以通过博客分享,帮助他人并巩固自己的知识;同时,通过学习可以提升自己的技能,为工作提供更好的支持‌。

成就

提示:你过去写得最好的一段代码是什么? 请用代码块贴出来
例如:

  1. 某个解题代码
public static void main(String[] args) throws Exception {

        /**
         * 对于任意一个对象,都可以把它的字段名和对应的值保存到文件中去
         */
        People people = new People(22, "小张", "1234588");
        Student student = new Student(24,"小明");
        writeFile(people);
        writeFile(student);
    }

    public static void writeFile(Object obj) throws Exception {
        //打印流
        PrintStream printStream =
                new PrintStream(new FileOutputStream("D:\\projectsJava\\springboot-day01\\src\\data.txt",true));
        Class<?> aClass = obj.getClass();
        String simpleName = aClass.getSimpleName();
       printStream.println("---------"+simpleName+"---------");
        Field[] declaredFields = aClass.getDeclaredFields();
        for (Field declaredField : declaredFields) {
            declaredField.setAccessible(true);
            String fieldName = declaredField.getName();
            String fieldValue = declaredField.get(obj) + "";
            printStream.println(fieldName + "=" + fieldValue);
        }
        printStream.close();
    }
  1. 某个项目实现代码
    @Autowired
    private UserMapper userMapper;

    @Autowired
    private StringRedisTemplate stringRedisTemplate;


    public static final String ALL_USER_KEY = "allUser";
    @RequestMapping(value = "/selectUserAll")
    @ApiOperation(value = "根据用户名称查询服务",tags = "列表1")
    public List<SysUser> selectUserAll(
            @RequestParam(value = "pageSize",required = false) Integer pageSize,
            @RequestParam(value = "pageCount",required = false) Integer pageCount){


//        if(pageSize <1){
//            pageSize = 1;
//        }
        /**
         * 1 int start = (pageSize - 1) * pageCount; //   limit分页 (当前页 -1)* 每页条数
         * 2 List<SysUser> list = userService.selectUserAll(start,pageCount);
         * 3 查询出totalCount 和list列表一起封装进map集合里返回前端
         */

        // 从redis缓存中获取
        String allUser = stringRedisTemplate.opsForValue().get(ALL_USER_KEY);
        List<SysUser> userList;
        if(StrUtil.isBlank(allUser)){
            //查询数据库,再把key放到缓存
            userList = userMapper.selectUserAll();
            stringRedisTemplate.opsForValue().set(ALL_USER_KEY, JSONUtil.toJsonStr(userList));
        } else {
            //从缓存中直接获取数据
            userList = JSONUtil.toBean(allUser, new TypeReference<List<SysUser>>() {
            }, true);
        }

//        List<SysUser> userList = userService.selectUserAll();

        return userList;
    }

憧憬

提示:职业规划、创作规划等​​

  • 技术深化与拓展:在熟练掌握一种编程语言的基础上,学习并掌握其他相关技术(如前端开发、后端开发等)。
  • 项目管理:考取项目管理相关证书(如PMP、高项等),积累项目管理经验,提升项目协调能力。
  • 团队领导:寻求团队管理岗位,带领团队完成项目目标,提高团队整体战斗力。
  • 技术专家:成为某一领域的专家或技术带头人,为团队提供技术支持和指导。
  • 业务拓展:关注行业发展趋势,拓展业务领域,为公司创造更多价值。
  • 领导职务:担任公司中高层领导职务,负责公司业务或技术方向的管理和决策。
  • 个人品牌建设:通过社交媒体、技术博客等方式建立个人品牌,提高行业影响力。
;