实体Bean的创建: 1: 基于class构建, 2: 构造方法构建 3: 静态工厂方法创建 4: FactoryBean构建
spring如何集成第三方框架? 比如mybatis
在mybatis中, 我们是先获取一个SqlSessionFactory, ---创建一个sqlSession---开启一个会话: sqlSession.openSession()--- session.getMapper(),这里生成的是一个代理对象,---代理对象执行语句
spring集成mybatis,就是将这个mybatis生成的代理对象交给 spring容器管理, 这样我们就可以在spring中轻松使用这个代理对象,进而使用mybatis了
如何将这个代理对象(比如UserMapper)放入 spring容器中呢
这里用到一个FactoryBean接口, 一个MybatisFactoryMapper类实现此接口,并重写获取 getObject()的方法(这里根据传进来的string反射创建),和getType类型的方法,
xml中配置
这样实际上spring容器获取到的是mybatis的代理对象(UserMapper),而不是MybatisFactoryMapper