记录


spring filter 坑点

加了@ServletComponentScan,无论过滤器类加不加@Componment都可以,单使用@Component会默认过滤/*

@Oder只能在不加@ServletComponentScan 情况下才有效,但是单使用@Component会默认过滤/*,所以@Oder废了
只能单独写配置文件,将Filter配置进来排序(不需要@ServletComponentScan)


使用Spring boot 缓存

@Cacheable(cacheNames = “emp”,key = “#user.admin”,unless="#result == null" )
Key用admin存,第一次在数据库获取数据会存储到缓存中,第二次将密码改了,依旧能获取成功,测试了几遍,他应该是只匹配Key值,
只要Key匹配,他就会判断该数据存在,直接返回缓存中的数据


spring中Constructor、@Autowired、@PostConstruct的顺序
其实从依赖注入的字面意思就可以知道,要将对象p注入到对象a,那么首先就必须得生成对象p与对象a,才能执行注入。所以,如果一个类A中有个成员变量p被@Autowired注解,那么@Autowired注入是发生在A的构造方法执行完之后的。

如果想在生成对象时候完成某些初始化操作,而偏偏这些初始化操作又依赖于依赖注入,那么就无法在构造函数中实现。为此,可以使用@PostConstruct注解一个方法来完成初始化,@PostConstruct注解的方法将会在依赖注入完成后被自动调用。

Constructor >> @Autowired >> @PostConstruct


spring事物管理(@Transactional),异常事务回滚,try catch捕获不抛出,事物不回滚

默认情况下,spring事务只有在发生未被捕获的 RuntimeException时才回滚(运行时异常)。
注意,不写try catch和写try{} catch (Exception e) { throw new RuntimeException(); }是一样的意思。
解决:
不进行捕获,或捕获抛出RuntimeException;
捕获并手动回滚

 try {
          // 新增/修改
        } catch (Exception e) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚
        }

一般为了用户体验好,想抛出自定义的异常,会用到第二种解决方法,捕获,然后手动回滚,再抛出自定义的异常


mybatis update 返回值是匹配到的数据 , 并不是所影响的数据


在这里插入图片描述


在springmvc中 配置 @RequestMapping(value={“test”, “test1”})
如果你项目端口是8080;然后你要访问这个方法,
你可以通过 http://localhost:8080/test或者http://localhost:8080/test1来访问


getSession(false) :判断有无session,有就返回该session,没有就返回null
getSession(true):判断有无session,有就返回该session,没有就创建


在Java7中,关闭流这种繁琐的操作就不用我们自己写了

只要实现的自动关闭接口(Closeable)的类都可以在try结构体上定义,java会自动帮我们关闭,及时在发生异常的情况下也会。可以在try结构体上定义多个,用分号隔开即可,如:

try (OutputStream out = new FileOutputStream("");OutputStream out2 = new FileOutputStream("")){  
    // ...操作流代码  
} catch (Exception e) {  
    throw e;  
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值