Skip to content

Commit d234df5

Browse files
committed
🎉 opts spring-tiny
1 parent 886044f commit d234df5

36 files changed

+436
-88
lines changed

spring-tiny/src/main/java/cn/ucaner/spring/tiny/anntotion/handle/AutowiredHandle.java

-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
*/
2525
public class AutowiredHandle {
2626

27-
28-
2927
/**
3028
* logger 获取日志记录器
3129
*/

spring-tiny/src/main/java/cn/ucaner/spring/tiny/beans/factory/AbstractBeanFactory.java

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/**
2+
* <html>
3+
* <body>
4+
* <P> Copyright JasonInternational </p>
5+
* <p> All rights reserved.</p>
6+
* <p> Created by Jason. The Source On WebSite . https://github.com/Jasonandy/Spring-Core </p>
7+
* </body>
8+
* </html>
9+
*/
110
package cn.ucaner.spring.tiny.beans.factory;
211

312
import java.util.HashMap;

spring-tiny/src/main/java/cn/ucaner/spring/tiny/beans/factory/AbstractFactoryBean.java

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/**
2+
* <html>
3+
* <body>
4+
* <P> Copyright JasonInternational </p>
5+
* <p> All rights reserved.</p>
6+
* <p> Created by Jason. The Source On WebSite . https://github.com/Jasonandy/Spring-Core </p>
7+
* </body>
8+
* </html>
9+
*/
110
package cn.ucaner.spring.tiny.beans.factory;
211

312
/**

spring-tiny/src/main/java/cn/ucaner/spring/tiny/beans/factory/AutowireCapableBeanFactory.java

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/**
2+
* <html>
3+
* <body>
4+
* <P> Copyright JasonInternational </p>
5+
* <p> All rights reserved.</p>
6+
* <p> Created by Jason. The Source On WebSite . https://github.com/Jasonandy/Spring-Core </p>
7+
* </body>
8+
* </html>
9+
*/
110
package cn.ucaner.spring.tiny.beans.factory;
211

312
/**

spring-tiny/src/main/java/cn/ucaner/spring/tiny/beans/factory/BeanFactory.java

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/**
2+
* <html>
3+
* <body>
4+
* <P> Copyright JasonInternational </p>
5+
* <p> All rights reserved.</p>
6+
* <p> Created by Jason. The Source On WebSite . https://github.com/Jasonandy/Spring-Core </p>
7+
* </body>
8+
* </html>
9+
*/
110
package cn.ucaner.spring.tiny.beans.factory;
211

312
import cn.ucaner.spring.tiny.beans.config.BeanDefinition;

spring-tiny/src/main/java/cn/ucaner/spring/tiny/beans/factory/FactoryBean.java

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/**
2+
* <html>
3+
* <body>
4+
* <P> Copyright JasonInternational </p>
5+
* <p> All rights reserved.</p>
6+
* <p> Created by Jason. The Source On WebSite . https://github.com/Jasonandy/Spring-Core </p>
7+
* </body>
8+
* </html>
9+
*/
110
package cn.ucaner.spring.tiny.beans.factory;
211

312
/**

spring-tiny/src/main/java/cn/ucaner/spring/tiny/beans/factory/ListableBeanFactory.java

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/**
2+
* <html>
3+
* <body>
4+
* <P> Copyright JasonInternational </p>
5+
* <p> All rights reserved.</p>
6+
* <p> Created by Jason. The Source On WebSite . https://github.com/Jasonandy/Spring-Core </p>
7+
* </body>
8+
* </html>
9+
*/
110
package cn.ucaner.spring.tiny.beans.factory;
211

312
/**

spring-tiny/src/main/java/cn/ucaner/spring/tiny/beans/factory/ResourceLoaderBeanFactory.java

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/**
2+
* <html>
3+
* <body>
4+
* <P> Copyright JasonInternational </p>
5+
* <p> All rights reserved.</p>
6+
* <p> Created by Jason. The Source On WebSite . https://github.com/Jasonandy/Spring-Core </p>
7+
* </body>
8+
* </html>
9+
*/
110
package cn.ucaner.spring.tiny.beans.factory;
211

312
import cn.ucaner.spring.tiny.core.io.ResourceLoader;

spring-tiny/src/main/java/cn/ucaner/spring/tiny/beans/factory/support/BeanDefinitionRegistry.java

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/**
2+
* <html>
3+
* <body>
4+
* <P> Copyright JasonInternational </p>
5+
* <p> All rights reserved.</p>
6+
* <p> Created by Jason. The Source On WebSite . https://github.com/Jasonandy/Spring-Core </p>
7+
* </body>
8+
* </html>
9+
*/
110
package cn.ucaner.spring.tiny.beans.factory.support;
211

312
import cn.ucaner.spring.tiny.beans.config.BeanDefinition;

spring-tiny/src/main/java/cn/ucaner/spring/tiny/beans/factory/support/DefaultSingletonBeanRegistry.java

+15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/**
2+
* <html>
3+
* <body>
4+
* <P> Copyright JasonInternational </p>
5+
* <p> All rights reserved.</p>
6+
* <p> Created by Jason. The Source On WebSite . https://github.com/Jasonandy/Spring-Core </p>
7+
* </body>
8+
* </html>
9+
*/
110
package cn.ucaner.spring.tiny.beans.factory.support;
211

312
import java.util.Map;
@@ -18,8 +27,14 @@
1827
*/
1928
public class DefaultSingletonBeanRegistry implements SingletonBeanRegistry {
2029

30+
/**
31+
* 获取日志记录器
32+
*/
2133
Logger logger = LoggerFactory.getLogger(this.getClass());
2234

35+
/**
36+
* singletonObjects 单例bean容器 - ConcurrentHashMap 并发修改
37+
*/
2338
private final Map<String, Object> singletonObjects = new ConcurrentHashMap<String, Object>(64);
2439

2540
@Override

spring-tiny/src/main/java/cn/ucaner/spring/tiny/context/AbstractApplicationContext.java

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/**
2+
* <html>
3+
* <body>
4+
* <P> Copyright JasonInternational </p>
5+
* <p> All rights reserved.</p>
6+
* <p> Created by Jason. The Source On WebSite . https://github.com/Jasonandy/Spring-Core </p>
7+
* </body>
8+
* </html>
9+
*/
110
package cn.ucaner.spring.tiny.context;
211

312
import cn.ucaner.spring.tiny.beans.factory.AutowireCapableBeanFactory;

spring-tiny/src/main/java/cn/ucaner/spring/tiny/context/ApplicationContext.java

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/**
2+
* <html>
3+
* <body>
4+
* <P> Copyright JasonInternational </p>
5+
* <p> All rights reserved.</p>
6+
* <p> Created by Jason. The Source On WebSite . https://github.com/Jasonandy/Spring-Core </p>
7+
* </body>
8+
* </html>
9+
*/
110
package cn.ucaner.spring.tiny.context;
211

312
/**

spring-tiny/src/main/java/cn/ucaner/spring/tiny/context/AutowireApplicationContext.java

+14-6
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
*/
2323
public class AutowireApplicationContext extends DefaultListableBeanFactory implements AutowireCapableBeanFactory{
2424

25-
private static Logger log = LoggerFactory.getLogger(AutowireApplicationContext.class);
25+
private static Logger logger = LoggerFactory.getLogger(AutowireApplicationContext.class);
2626

2727
/**
2828
* 加载log4j的配置
@@ -43,12 +43,19 @@ public AutowireApplicationContext(String location) throws Exception
4343
refresh();
4444
}
4545

46-
/*
47-
* 继承ComponentHandle,拥有解析@component注解的能力
46+
/**
47+
* @Package:cn.ucaner.spring.tiny.context
48+
* @ClassName:AutowireAnnotationBeanDefinition
49+
* @Description: <p> 继承ComponentHandle,拥有解析@component注解的能力 </p>
50+
* @Author: - Jason
51+
* @CreatTime:2018年5月30日 下午9:01:35
52+
* @Modify By:
53+
* @ModifyTime: 2018年5月30日
54+
* @Modify marker:
55+
* @version V1.0
4856
*/
4957
private class AutowireAnnotationBeanDefinition extends AnnotationBeanDefinitionReader{
50-
public AutowireAnnotationBeanDefinition(BeanDefinitionRegistry registry)
51-
{
58+
public AutowireAnnotationBeanDefinition(BeanDefinitionRegistry registry){
5259
super(registry);
5360
}
5461
}
@@ -57,7 +64,7 @@ public AutowireAnnotationBeanDefinition(BeanDefinitionRegistry registry)
5764
@Override
5865
protected void refresh() throws Exception {
5966
int count=new AutowireAnnotationBeanDefinition(this).loadBeanDefinitions(resource);
60-
log.info("一共初注册了:"+count+"个beanDefinition");
67+
logger.info("[Tiny-Spring] Total Register Count-{} beanDfinition.",count);
6168
}
6269

6370

@@ -66,3 +73,4 @@ public void AutowireBean() {
6673

6774
}
6875
}
76+

spring-tiny/src/main/java/cn/ucaner/spring/tiny/core/aop/AbstractAOPHandler.java

+10
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,22 @@
1818
*/
1919
public abstract class AbstractAOPHandler implements InvocationHandler{
2020

21+
/**
22+
* Object
23+
*/
2124
protected Object object;
2225

26+
/**
27+
* AbstractAOPHandler.
28+
* @param object
29+
*/
2330
public AbstractAOPHandler(Object object){
2431
this.object=object;
2532
}
2633

34+
/**
35+
* invoke
36+
*/
2737
@Override
2838
public Object invoke(Object proxy, Method method, Object[] args)
2939
throws Throwable {

spring-tiny/src/main/java/cn/ucaner/spring/tiny/core/aop/AbstractProxy.java

+23
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,38 @@
1515
*/
1616
public abstract class AbstractProxy implements Proxy{
1717

18+
/**
19+
* @Description: getProxyObjectBytype
20+
* @param obj
21+
* @param aop
22+
* @return T
23+
* @Autor: Jason - Jasonandy@hotmail.com
24+
*/
1825
@SuppressWarnings("unchecked")
1926
<T> T getProxyObjectBytype(Object obj,Aop aop){
2027
return (T)getProxyObject(obj, aop);
2128
}
2229

30+
/**
31+
* @Description: getProxyObjectByClassName
32+
* @param className
33+
* @param aop
34+
* @return
35+
* @throws Exception T
36+
* @Autor: jason - jasonandy@hotmail.com
37+
*/
2338
<T> T getProxyObjectByClassName(String className,Aop aop) throws Exception{
2439
return getProxyObjectBytype(Class.forName(className).newInstance(),aop);
2540
}
2641

42+
/**
43+
* @Description: getProxyObjectByType
44+
* @param clz
45+
* @param aop
46+
* @return
47+
* @throws Exception T
48+
* @Autor: jason - jasonandy@hotmail.com
49+
*/
2750
<T> T getProxyObjectByType(Class<T> clz,Aop aop) throws Exception{
2851
return getProxyObjectBytype(clz.newInstance(),aop);
2952
}

spring-tiny/src/main/java/cn/ucaner/spring/tiny/core/aop/Aop.java

+14
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,22 @@
1717
*/
1818
public interface Aop{
1919

20+
/**
21+
* @Description: after
22+
* @param proxy
23+
* @param method
24+
* @param args void
25+
* @Autor: JASON - Jasonandy@hotmail.com
26+
*/
2027
void after(Object proxy, Method method, Object[] args);
2128

29+
/**
30+
* @Description: before
31+
* @param proxy
32+
* @param method
33+
* @param args void
34+
* @Autor: Jason - jasonandy@hotmail.com
35+
*/
2236
void before(Object proxy, Method method, Object[] args);
2337

2438
}

spring-tiny/src/main/java/cn/ucaner/spring/tiny/core/aop/DefaultAOPHandler.java

+17-9
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,32 @@
1717
*/
1818
public class DefaultAOPHandler extends AbstractAOPHandler{
1919

20+
/**
21+
* aop 对象
22+
*/
2023
private Aop aop;
2124

22-
public DefaultAOPHandler(Object object, Aop aop)
23-
{
25+
/**
26+
* DefaultAOPHandler.
27+
* @param object
28+
* @param aop
29+
*/
30+
public DefaultAOPHandler(Object object, Aop aop){
2431
super(object);
2532
this.aop=aop;
26-
2733
}
2834

35+
/**
36+
* invoke
37+
*/
2938
@Override
30-
public Object invoke(Object proxy, Method method, Object[] args)
31-
throws Throwable {
39+
public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {
3240
Object ret=null;
33-
//修改的地方在这里哦
34-
this.aop.before(proxy, method, args);
41+
this.aop.before(proxy, method, args);//before
42+
3543
ret=method.invoke(object, args);
36-
//修改的地方在这里哦
37-
this.aop.after(proxy, method, args);
44+
45+
this.aop.after(proxy, method, args);//after
3846
return ret;
3947
}
4048

spring-tiny/src/main/java/cn/ucaner/spring/tiny/core/aop/DefaultProxyObject.java

+9-3
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,19 @@
1717
*/
1818
public class DefaultProxyObject extends AbstractProxy{
1919

20+
/**
21+
* getProxyObject
22+
* JDK 动态生成
23+
*/
2024
@Override
2125
public Object getProxyObject(Object obj, Aop aop) {
22-
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),
23-
obj.getClass().getInterfaces(),
24-
new DefaultAOPHandler(obj,aop));
26+
return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), new DefaultAOPHandler(obj,aop));
2527
}
2628

29+
30+
/**
31+
* getProxyObjectByType
32+
*/
2733
@SuppressWarnings("unchecked")
2834
@Override
2935
public <T> T getProxyObjectByType(Class<T> clz, Aop aop){

spring-tiny/src/main/java/cn/ucaner/spring/tiny/core/aop/Proxy.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@
1515
* @version V1.0
1616
*/
1717
public interface Proxy {
18-
//获得代理类的对象
18+
19+
20+
/**
21+
* @Description: 获得代理类的对象
22+
* @param obj
23+
* @param AOP
24+
* @return Object
25+
* @Autor: Jason - jasonandy@hotmail.com
26+
*/
1927
Object getProxyObject(Object obj,Aop AOP);
2028
}

spring-tiny/src/main/java/cn/ucaner/spring/tiny/core/io/AbstractBeanDefinitionReader.java

+7
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,17 @@
1414
*/
1515
public abstract class AbstractBeanDefinitionReader implements BeanDefinitionReader{
1616

17+
/**
18+
* BeanDefinitionRegistry
19+
*/
1720
protected final BeanDefinitionRegistry registry;
1821

22+
/**
23+
* ResourceLoader
24+
*/
1925
private ResourceLoader resourceLoader;
2026

27+
2128
public AbstractBeanDefinitionReader(BeanDefinitionRegistry registry){
2229
this.registry=registry;
2330
this.resourceLoader = (ResourceLoader)this.registry;

0 commit comments

Comments
 (0)