ssm
云养猫v2
这个作者很懒,什么都没留下…
展开
-
Spring多种初始化的方法
1, 实现InitializingBean接口: override afterPropertiesSet()@Componentpublic class Cat implements InitializingBean,DisposableBean { public Cat(){ System.out.println("cat constructor..."); } @Overr...原创 2020-04-03 16:25:39 · 241 阅读 · 0 评论 -
拦截器和过滤器的区别
过滤器(filter)过滤器处于客户端和web资源之间,客户端与web资源之间的请求和响应都要通过过滤器进行过滤传入的request,response提前过滤掉一些信息,或者提前设置一些参数拦截器(interceptor)拦截器是一种面向方面/切面编程(AOP Aspect-Oriented Programming)你的service或者一个方法前调用一个方法,或者在方法后调用一个...原创 2020-04-03 14:45:06 · 81 阅读 · 0 评论 -
JDK与GCLIB动态代理
JDK动态代理产生的类 extends Proxy implements Hellopublic interface Hello { void sayHello();}public class HelloImpl implements Hello { @Override public void sayHello() { System.out.pr...原创 2020-04-03 14:28:03 · 122 阅读 · 0 评论 -
Spring中的BeanFactory和ApplicationContext
BeanFactory和ApplicationContext区别:BeanFactory对bean是延迟加载的,即只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化;ApplicationContext,它是在容器启动时,一次性创建了所有的BeanBeanPostProcessor、BeanFactoryPostProcessor的使用,BeanFactor...原创 2020-04-02 13:43:19 · 98 阅读 · 0 评论 -
SQL注入 mybatis的#{} ${} statement preparestatement
一个sql 是经过解析器编译并执行,注意这里是一个并字。${}select * from account where username = ${username} and password = ${password} limit 10如果为username 传参数 '1' or 1=1 # password aaa上述sql语句经过编译并执行就变成了 **参数参与了编译**s...原创 2020-04-01 23:37:18 · 296 阅读 · 0 评论 -
Spring Bean生命周期
如果这个Bean实现了BeanPostProcessor接口,将会调用postProcessBeforeInitialization(Object obj, String s)方法如果这个Bean实现了BeanPostProcessor接口,将会调用postProcessAfterInitialization(Object obj, String s)方法...原创 2020-04-01 15:45:23 · 86 阅读 · 0 评论 -
spring AOP事务 @Transactional (声明式事务)
How to start, commit or rollback JDBC transactionsimport java.sql.Connection;Connection connection = dataSource.getConnection(); // (1)try (connection) { connection.setAutoCommit(false); // ...转载 2020-03-18 19:02:19 · 219 阅读 · 0 评论 -
prepareStatement与createStatement的区别
public void delete( int id){ try { Connection c = DBUtil.getConnection(); Statement s = c.createStatement(); String sql = "delete from category where id = "...原创 2020-03-17 20:18:57 · 278 阅读 · 0 评论 -
springboot 约定大于配置
@SpringBootApplication@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filte...转载 2020-01-14 10:34:12 · 420 阅读 · 1 评论 -
AOP源码相关
ioc容器中InstantiationAwareBeanPostProcessor的执行顺序resolveBeforeInstantiation()ibp.postProcessBeforeInstantiation(beanClass, beanName); instanceWrapper = createBeanInstance(beanName, mbd, args)...原创 2020-01-14 09:26:30 · 68 阅读 · 0 评论 -
spring是如何解决循环依赖的
循环依赖循环依赖就是多个Bean之间依赖关系形成一个闭环,例如A->B->C->…->A 这种情况,当然,最简单的循环依赖就是2个Bean之间互相依赖:A->B(A依赖B), B->A(B依赖A) 。在Spring中,如果A->B,那么在创建A的过程中会去创建B,在创建B(或B的依赖)的过程中又发现B->A,这个时候就出现了循环依赖的现象。spr...转载 2020-01-09 10:39:02 · 99 阅读 · 0 评论 -
mybatis一级缓存、二级缓存
一级缓存一级缓存基于sqlSession,是默认开启的,在操作数据库时需要构造SqlSession对象,在对象中有一个HashMap用于存储缓存数据。不同的SqlSession之间缓存数据区域是互相不影响的。一级缓存的作用域是SqlSession范围的,当在同一个sqlSession中执行两次相同的sql语句时,第一次执行完毕会将数据库中查询的数据写到缓存中。第二次查询时会从缓存中获取数据,...原创 2019-05-05 21:58:09 · 129 阅读 · 0 评论 -
Spring IOC
IOC:控制反转也叫依赖注入。利用工厂模式将对象交给容器管理,你只需在spring配置文件配置相应的bean及属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把配置文件中配置的bean都初始化好,然后在需要调用的时候,就把它已经初始化好的那些bean分配给你需要调用这些bean的类,分配的方法就是调用类的Setter方法来注入,而不需要new...原创 2019-02-19 10:09:23 · 110 阅读 · 0 评论 -
spring AOP在实际项目中的应用
事务管理拦截器日志处理原创 2019-03-08 19:39:09 · 2813 阅读 · 0 评论 -
SpringBoot的特性
1,Spring boot可以以jar包形式独立运行程序,不需要部署war包2,能够直接使用java main方法启动内嵌的Tomcat服务器运行Spring Boot程序3, 基本可以完全不使用XML配置文件,采用注解配置。4,配合各种starter使用,基本上可以做到自动化配置spring-boot-starter-web,起步依赖就像这里的品牌机,自动给你封装好了你...原创 2019-03-12 14:44:11 · 257 阅读 · 0 评论 -
常用注解
spring mvc常用注解:@Controller在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。@RequestMapping 用来处理请求地址映射的注解,可用于类或方法上。用于类上表示响应请求的方...原创 2019-03-12 19:29:07 · 73 阅读 · 0 评论 -
spring拦截器
spring拦截器常用于对用户的请求进行拦截处理,例如:实现登陆验证、系统权限验证、编码过滤等方面,这样在用户的请求未处理之前进行预处理或者请求进行转发。通过继承HandlerInterceptorAdapter public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Objec...原创 2019-03-12 19:38:29 · 195 阅读 · 0 评论 -
servlet的生命周期
servlet的生命周期可被定义为从创建直到毁灭的整个过程。Serclet通过调用init()方法进行初始化 Servlet调用service()方法来处理客户端的请求 Servlet通过调用destory()方法来终止 最后,Servlet是有JVM的垃圾回收器进行垃圾回收的...原创 2019-03-25 08:52:08 · 92 阅读 · 0 评论 -
Spring aop
AOP:面向切面编程AOP是对OOP的补充和完善。OOP引入封装、继承和多态等概念建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为时,OOP就显得无能为力。也就是说,OOP允许你定义从上到下的关系,但不适合定义从左到右的关系。如日志功能,日志代码往往水平地散布在所有对象层次中,而与它所散布到对象的核心功能毫无关系。AOP技术就是将非业务代码封装到一个可重...原创 2019-03-18 13:13:08 · 115 阅读 · 0 评论 -
mybatis的一级缓存和二级缓存
mybatis提供查询缓存,用于减轻数据压力,提高数据库性能。一级缓存一级缓存的是SqlSession范围的缓存,当调用SqlSession的修改,添加,删除,commit()方法时,就会清空一级缓存。第一次发起查询用户为1的用户信息,先去找缓存中是否有id为1的用户信息,如果没有,从数据库查询用户信息。得到用户信息,将用户信息存储到一级缓存中。如果sqlSession去执行comm...转载 2019-05-05 21:37:08 · 165 阅读 · 0 评论 -
spring mvc执行流程
转载 2019-02-19 10:09:28 · 110 阅读 · 0 评论