GithubHelp home page GithubHelp logo

sampleappcan / demo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from asdgh1000/demo

0.0 2.0 0.0 5.07 MB

java生产项目常用的demo

License: Apache License 2.0

Batchfile 0.32% Shell 0.83% Java 5.71% CSS 0.08% HTML 41.54% XSLT 0.05% Makefile 0.44% C 41.98% C++ 0.52% Perl 1.76% M4 0.57% Groff 0.07% Lua 0.12% Ruby 0.71% Tcl 4.73% Smarty 0.01% JavaScript 0.54% SQLPL 0.01%

demo's Introduction

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.选择正确锁的类型(如:悲观锁,乐观锁)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.