Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ChenRussell/demo

Repository files navigation

java生产项目常用的demo

[TOC]

##一.代理模式 ###1.静态代理 继承方式实现 聚合方式实现 ###2.动态代理 使用jdk proxy代理接口方式实现 使用Cglib代理类方式实现 ####自己实现的动态代理 模仿jdk proxy自己实现动态代理: 核心:实现动态代理的Proxy类 , 实现动态代理的InvocationHandler类重写invoke方法实现. ##二.spring ###1.spring ioc ####1.1.spring容器 ######1.1.1.BeanFactory 常用实现类:DefaultListableBeanFactory ######1.1.2.ApplicationContext 常用实现类:FileSystemXmlApplicationContext #####1.1.3.启动过程 由于对于不同容器启动过程是类似的,因此在基类AbstractXmlApplicationContext中将它们封装好,通过refresh()方法进行调用。 ######refresh(): IOC容器初始化具体分为以下三部:

BeanDefinition的Resource 定位 载入 注册
对不同BeanDefinition Resource的定位 把用户定义的Bean表示成Ioc容器内部数据结构 调用BeanDefinitionRegistry注册BeanDefinition到IOC容器的HashMap中
此时的ioc容器初始化过程一般不包含Bean依赖注入,一般依赖注入是在第一次getBean时才进行(设置了lazyinit的除外)。
######registerBeanDefinition:
DefaultListableBeanFactory:
	this.beanDefinitionMap.put(beanName, beanDefinition);

#####1.1.4.ioc容器的依赖注入

AbstractBeanFactory:
	protected <T> T doGetBean(
			final String name, final Class<T> requiredType, final Object[] args, boolean typeCheckOnly)
			throws BeansException 

#####1.1.5.Bean实例化 默认使用cglib对java的字节码进行增强。 SimpleInstantiationStrategy: 提供两种实例话方案,一种是通过BeanUtils,使用了JVM反射。 一种就是通过cglib。 #####1.1.6.设置Bean对象的依赖:

AbstractAutowireCapableBeanFactory:
populateBean

###2.spring的事务 ###2.1.编程式事务 作为例子,使用场景很少 ###2.2.声明式事务 ####使用spring-AspectJ(编译时实现动态代理) 通过配置切点,切面织入实现动态代理 ####使用spring-AOP动态代理(运行时实现动态代理) 注解方式(适合中小工程) ####事务传播行为 ####事务隔离级别

##三.数据库事务 ###1.1数据库事务调优原则 在不影响业务应用的前提下: 1.减少锁的覆盖范围(如:表锁->行锁) 2.增加锁上可并行的线程数(如:读锁写锁分离,允许并行读取数据) 3.选择正确锁的类型(如:悲观锁,乐观锁)

##四.简单应用 ###1.1 高并发秒杀系统(持续更新) 项目目录:https://github.com/asdgh1000/demo/tree/master/secoundKill ###1.2 简单代理模式demo(持续更新) 项目目录:https://github.com/asdgh1000/demo/tree/master/proxyDemo ###1.3 简单spring事务demo(持续更新) 项目目录:https://github.com/asdgh1000/demo/tree/master/springTrancation ###1.4 简单分布式事务实践(持续更新)

About

java生产项目常用的demo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 42.1%
  • HTML 41.5%
  • Java 5.7%
  • Tcl 4.7%
  • Perl 1.8%
  • Shell 0.8%
  • Other 3.4%

AltStyle によって変換されたページ (->オリジナル) /