![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SSM框架基础
文章平均质量分 51
zero _s
这个作者很懒,什么都没留下…
展开
-
跨域问题解决方案
1、什么是跨域协议相同 http https域名相同 www.onlineclass.net端口相同 80 81在浏览器访问的时候,以上三者任意一个不同,都是跨域;浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域Nginx是用来干什么的? - 斯外戈 - 博客园2、解决跨域的方法(1) Http响应头配置允许跨域nginx层配置,在前端和后端之间加上一个反向代理服务器 ...原创 2022-03-28 19:24:13 · 1238 阅读 · 0 评论 -
本地缓存和分布式缓存
本地缓存的效率是比分布式缓存的高,但是本地缓存只是在当前节点有效; 选择本地缓存和分布式缓存 和业务数据结合去选择 高并发项目里面一般都是有本地缓存和分布式缓存共同存在的 CachesExplained · google/guava Wiki · GitHub使用本地缓存的时候,向构建一个缓存类private Cache<String,Object> tenMinuteCache = CacheBuilder.newBuilder() /原创 2022-03-28 18:57:20 · 508 阅读 · 0 评论 -
spring事务管理
分为编程式事务管理和声明式事务管理编程式事务管理:* 代码中调用beginTransaction()、commit()、rollback()等事务管理相关的方法,通过TransactionTempalte手动管理事务(用的少)声明式事务管理: * 通过AOP实现,可配置文件方式或者注解方式实现事务的管理控制(用的多)声明式事务管理本质:本质是对方法前后进行拦截,底层是建立在 AOP 的基础之上,在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事原创 2022-03-26 21:05:21 · 114 阅读 · 0 评论 -
springBoot的常用注解
@Component 通用组件 细分:@Controller (用于web层)@Service (用于service层)@Repository (用于dao仓库层)@Component("XXXX")注入后ioc容器里面的默认名称是首字母小写的驼峰形式类型注入@Autowired名称注入@Qualifier(“bean 的名称”) bean生命周期 xml方式:init-method、destroy-method 注解方式:@PostConstruct初始化、@Pr原创 2022-03-26 17:14:11 · 1175 阅读 · 0 评论 -
spring的AOP思想(动态代理)
1、spring的AOP面向切面编程的思想核心思想:在不改变原有代码的基础上,添加其他的功能;即把原来的代码调过来,然后再原来代码的基础上,在其前面或者后面添加额外的功能;场景:权限控制、缓存、日志处理、事务控制;拦截器也是aop思想的一种利用;利用aop的代码中,一般分为两部分核心与非核心;核心部分一般就是原来的代码,非核心就是通过切入点,额外加入的功能;spring的AOP 本质是一种动态代理,分为JDK动态代理(实现了接口) 和CGlab动态代理两种;2、核心概念:..原创 2022-03-26 16:50:08 · 943 阅读 · 0 评论 -
spring的常见问题
1、IOC容器的设计思想IOC容器的核心是依赖注入 + 控制反转,即将代码中手动创建对象的过程交给spring来管理,对象的生命周期也是spring管理的;2、spring的作用域scope决定着spring是单例模式还是多例模式,如果是单例模式,在spring的ioc容器中只允许有一个这种对象,然后第二次创建,会先看容器里面有没有这个对象,如果有不会新建基本只用单例模式,少数用多例模式,其他三种基本不用;3、spring常见的注入方式注入方式在autow.原创 2022-03-24 21:56:49 · 250 阅读 · 0 评论 -
定时任何和异步任务的实现
定时任务: SpringBoot 使用注解定时任务 启动类里面@EnableScheduling开启定时任务,自动扫描 定时任务业务类 加注解 @组件被容器扫描 定期执行的方法加上注解 @Scheduled(fixedRate=2000) 定期执行一次 当需要用到定时任务的时候,首先需要在启动类上加@EnalbeScheduling@Componentpublic class ScheduleTask { @Scheduled(fixedRate.原创 2022-03-20 10:30:11 · 260 阅读 · 0 评论 -
过滤器--监听器--拦截器
sevlet中本身存在很多自带的过滤器使用sevlet3.0开发自定义注解:1、需要在启动类里面加上@ServletConponetScan2、新建一个Filter类,并implements Filter,并实现对应的接口3、@Webfilter标记一个类为filter,并被spring扫描4、urlPatterns:定义拦截规则5、控制chain、dofilter的方法的调用一般用在权限控制、登录校验扥场景中@WebFilter(urlPatterns = "/api/v原创 2022-03-19 22:28:16 · 724 阅读 · 0 评论 -
全局异常的处理
一般需要作为处理器,放在handler包下,然后构建异常处理器类,来处理全局异常@RestControllerAdvice是用来标记这是一个异常处理器的类如何配置全局异常:@RestControllerAdvice // 表名是一个异常处理类,默认返回json数据public class CustomException{ @ExceptionHandler(value = Exception.class) // 构建一个异常处理类,写入处理的是哪一类的异常原创 2022-03-19 17:47:19 · 310 阅读 · 0 评论 -
配置文件映射到实体类的方法
由于用yml格式的配置文件一般在冒号后面必须有一个缩进即空格,且是一层一层的递进的,因此多使用properties的文件,即采用key-value的方式进行;方法1:在需要的类上面添加注解@PropertySource("classpath:filename.properties") // 读取配置文件public class Testconfig{ // 将某个值注入 @Value("${keyName}") // 其中key是配置文件中等号左边的名称原创 2022-03-19 16:30:42 · 1768 阅读 · 0 评论