源码阅读
文章目录
- 目录
- spring源码
- 设计模式
- 创建型模式
- 地址
- 获取类信息(Class)的2种方式
- mybatis-设计模式
目录
spring,springboot,rocketmq,mybatis,mybatis-plus,eureka,tomcat,netty
flowable框架(源码编译flowable-https://www.jianshu.com/p/96ed4099da47)
spring源码
分析源码的: https://github.com/seaswalker/spring-analysis
设计模式
创建型模式
工厂,建造者,单例,原型,抽象工厂
地址
手写简单的注册中心
MyBatis配置详解https://www.cnblogs.com/chy18883701161/p/12120023.html
https://blog.csdn.net/kaituozhe\_sh/article/details/89520073
Mybatis之ObjectWrapper接口:该接口用来对数据库查询到的值设置到实体对象或Map对象的属性中。
https://www.jianshu.com/p/9f668bd95414
获取类信息(Class)的2种方式
User user = new User();
Class<? extends User> userClazz = user.getClass();
Class<?> userClazz = Class.forName("org.lmj.hf.orm.pojo.User");
mybatis-设计模式
菜鸟教程-设计模式-目录
mybatis设计模式以及代码实践
原生jdbc
public class DbUtil {
public static final String URL = "jdbc:mysql://localhost:3306/imooc";
public static final String USER = "liulx";
public static final String PASSWORD = "123456";
public static void main(String[] args) throws Exception {
//1.加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
//2. 获得数据库连接
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
//3.操作数据库,实现增删改查
Statement stmt = conn.createStatement();
//execute可以执行任何sql,有返回值则bool=true,rs!=null
//Boolean bool = st.execute(sql); ResultSet rs = stmt.getResultSet();
//executeQuery只能执行查询,executeUpdate只能执行更新
ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM imooc_goddess");
//如果有数据,rs.next()返回true
while(rs.next()){
System.out.println(rs.getString("user_name")+" 年龄:"+rs.getInt("age"));
}
}
}
代理模式:java原生动态代理
动态实现接口,比如mybatis里面的xxxMapper
建造者模式
变更的需求:【苹果电脑,联想电脑】—》8/16寸显示屏,英特尔/华硕主板
输出的产品都是一台有主板,显示屏,操作系统的电脑
public static void main(String[] args){
Builder builder=new MacBookBuilder(); //变动的---这是扩展点
Director pcDirector=new Director(builder);
pcDirector.construct("英特尔主板","Retina显示器"); //变动的---这是不同场景下配置的参数
Computer computer = builder.build();
System.out.println(computer.toString());
}
使用建造者模式-—- 构造——>工厂对象========》工厂模式-—-构造——->(sql执行器)SqlSession
还没有评论,来说两句吧...