1.动态代理的接口 转成实现接口的对象 是不行的,实质上 接口对象 不能转为 实现类对象接口可以继承接口,接口没有属性。
2.maven pakeage标签<packaging>jar</packaging>
内部调用或者是作服务使用
3.static修饰方法不能访问非static修饰的对象
非static修饰方法能访问一切static修饰的对象
4.2种动态代理的区别:
1.Gdk动态代理:通过复制一份被代理对象,来得到动态代理对象。
CGlib:通过继承被代理对象,来得到动态代理对象。
- 线程安全+单例模式的方法:
public class SqlFactoryUtil {
private static Class lock = SqlSessionFactory.class;
//1.把SqlSessionfactory作为静态对象
private static SqlSessionFactory sqlSessionFactory = null;
private SqlFactoryUtil(){
}
public static SqlSessionFactory getSqlSessionFactory() throws IOException {
synchronized (lock) {
//利用现在是线程安全的
if (sqlSessionFactory != null) {
return sqlSessionFactory;
}
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
return new SqlSessionFactoryBuilder().build(inputStream);
}
}
public static SqlSession getSqlSession() {
if (sqlSessionFactory == null) {
try {
sqlSessionFactory = getSqlSessionFactory();
} catch (IOException e) {
e.printStackTrace();
}
}
return sqlSessionFactory.openSession();
}
}