随笔分类 - Java
大叔也学学java,跟跟风...
摘要:EventListener事件触发和监听器可以对代码解耦,在一些与业务无关的,通用的操作方法,我们可以把它设计成事件监听器,像通知,消息这些模块都可以这样设计。 事件源 事件处理程序 事件触发 直接测试事件处理程序 测试业务代码 由于@Service也是spring组件 ,所以它里面的事件处理程序也
阅读全文
摘要:Filter 新建 TimeFilter @Component public class TimeFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletExcept
阅读全文
摘要:@Getter & @Setter 生成getter和setter块 @Data注解 @Data相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集。 通过官方文档,可以得知,当使用@Data
阅读全文
摘要:springboot~如何去掌握它 每讲40分钟 架构图 一 spirngboot介绍 环境搭建 jdk,gradle IDE工具选择intellij idea 源代码工具github的使用 issue的使用 分支的介绍与使用原则 第一个web api程序 二 服务发现与配置中心 eureka的介绍
阅读全文
摘要:网关在微服务里的角色 在微服务架构体系里,网关是非常重要的一个环节,它主要实现了一些功能的统一处理,包括了: 1. 统一授权 2. 统一异常处理 3. 路由导向 4. 跨域处理 5. 限流 实践一下 1 添加依赖 2 添加yml 3 添加实现代码 http拦截器,获取用户ID,为子服务进行传递 在主
阅读全文
摘要:大叔Springboot+微服务+持续集成和交付VIP(价格:5000元) springboot部分 微服务部分 持久集成和交付部分 springboot部分 1. 视频课(10讲) 2. 项目源代码(api restful风格) 3. 项目所需要的组件及说明 初始化 logger lombok c
阅读全文
摘要:问题起因 主要是使用mybatis作为ORM之后,返回的对象为Map,然后对于数据库的datetime,datestamp类型返回为时间戳而不是标准的时间,这个问题解决方案有两种,大叔分析一下: 在mapper的select里,使用mysql这些数据库的函数,dateformat进行转化,缺点,单元
阅读全文
摘要:单元测试有几点要说的 事实上springboot框架是一个tdd框架,你在进行建立项目时它会同时建立一个单元测试项目,而我们的代码用例可以在这个项目里完成,对于单元测试大叔有以下几点需要说明一下: 1. 单元测试的用例之间不要有相互依赖 2. 单元测试数据来源为本地,不要访问外部资源,外部数据库也是
阅读全文
摘要:在ibatis的xml文件里,我们去写sql语句,对应mapper类的方法,这些sql语句与控制台上没什么两样,但在有些功能上需要注意,如where in这种从数组里查询符合条件的集合里,需要在xml里进行特别的处理。 <update id="batchUpdate" parameterType="
阅读全文
摘要:事实起因 最近在ORM上使用了ibatis,感觉挺繁琐的,没有jpa来的直接,但项目非要用也没有办法,最近在进行开发过程中出现了一个问题Invalid bound statement (not found)意思是说,你的xml映射和你的mapper方法不一致,这种不一致大叔总结几点,如果你出现了这种
阅读全文
摘要:TDD是什么 TDD就是测试驱动开发,以测试用例为主导,去开发项目,业务代码该怎么写还是怎么写,在实现UI之前,可以先实现Test用例,通过test来实现对业务场景的模拟,最终让你的代码更稳定。 大叔认为tdd的作用 1. 代码更稳定,bug在发布之前被暴露出来 2. 持续集成更需要它,当你的项目通
阅读全文
摘要:缓存来了 在dotnet平台有自己的缓存框架,在java springboot里当然了集成了很多,而且缓存的中间件也可以进行多种选择,向redis, hazelcast都是分布式的缓存中间件,今天主要说一下后者的实现。 添加依赖包 dependencies { compile("org.spring
阅读全文
摘要:把一些公用方法,类型抽象到一个项目里,让其它项目依赖它,这种设计是一种解耦的体现,其实像springboot就是我们的一种依赖,他里面有很多子模块,用到哪个就添加哪个依赖即可,像redis,mongodb,elastic,solr等很多第三方库,都可以通过spring的依赖添加进来。 gradle没
阅读全文
摘要:起因 当前我们使用mongodb进行查询时,有时我们的条件是分块生成的,它可能来自一个列表里,我们的条件需要根据列表去返回数据,这里有个问题,如果遍历列表,然后每次都去从mongodb里查询数据 ,这种性能显然是不好的,我们需要把条件进行拼接,一次把数据查询出来! 分析 使用Criteria这个对象
阅读全文
摘要:期望 希望开发环境dev用mysql 单元测试使用本机的h2数据库 引入依赖 compile('org.springframework.boot:spring-boot-starter-data-jpa') runtime('com.h2database:h2') runtime('mysql:my
阅读全文
摘要:我们有时在进行开发过程中,使用jpa的@Query注解去选择多张表然后返回一个DTO对象,这个时候我们需要特殊处理一下,因为默认情况下,你的jpa代码是不认DTO对象的。 参考文章:https://smarterco.de/spring data jpa query result to dto/ e
阅读全文
摘要:jap是个全能仓储 jap把很多数据库访问都封装了,并且提交了默认的一切数据方法签名的约定,大家按着约定走,可以不写SQL语句,而如果比较复杂的情况,也需要写SQL,这里我们介绍一下查询和修改的实例方法,有一点要注意,==仓储的写操作是没有返回值==的。 商品仓储个性接口 controller中可以
阅读全文
摘要:实体与Dto自动赋值 在开发的过程中,实体之间相互赋值是很正常的事,但是我们一般的方法都通过set和get方法来进行的,如果要赋值的字段少那还行,但是需要赋值的字段超过10个,那就是个灾难,你会看到整屏代码中全是set和get方法。 1. 两个实体属性字段几乎完全相同 2. 两个字体有部分字段相同
阅读全文
摘要:springboot将项目源代码打包并发布到仓库 如果我们有一些类和方法是公用的,可以打开公用包,而这时使用默认的build方式都所有依赖都打进去,而且你当然项目的文件虽然在包里,但却在boot inc里,这里的文件不能被其它包识别,只是一大堆class文件,然后下面的方法,我们会生成一个后缀stu
阅读全文
摘要:回到占占推荐博客索引 最近写了不过关于java,spring,微服务的相关文章,今天把它整理一下,方便大家学习与参考。 java~springboot(2022之后)~目录索引 java~springboot(2022之前)~目录索引 IntelliJ IDEA~gradle环境配置 springb
阅读全文