Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает/устроен Spring внутри? / 12 сообщений из 12, страница 1 из 1
26.03.2013, 21:34:08
    #38199432
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает/устроен Spring внутри?
Я честно прочитал бОльшую часть документации по spring, но вот не понимаю как это все работает внутри.
Поделитесь ссылками на эту тему.
...
Рейтинг: 0 / 0
26.03.2013, 21:43:28
    #38199445
Alex Serezhenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает/устроен Spring внутри?
maven, download sources - изучайте :)
стройте диаграммы, ломайте голову=) оч много рефлексии..
...
Рейтинг: 0 / 0
26.03.2013, 21:44:18
    #38199447
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает/устроен Spring внутри?
что ты подразумеваешь под словами "как это все работает внутри"
Ну так и работает, тебе просто надо понять что такое dependency injection
...
Рейтинг: 0 / 0
26.03.2013, 21:46:17
    #38199451
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает/устроен Spring внутри?
Alex Serezhenkomaven, download sources - изучайте :)
стройте диаграммы, ломайте голову=) оч много рефлексии..
Я смотрю через http://grepcode.com, хотя возможно есть что-то поудобнее для On-line просмотра.
...
Рейтинг: 0 / 0
26.03.2013, 22:00:20
    #38199471
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает/устроен Spring внутри?
забыл никчто ты подразумеваешь под словами "как это все работает внутри"
Ну так и работает, тебе просто надо понять что такое dependency injection
Ну скажем как происходит инжекция бинов я более менее представляю, просмотрев код AutowiredAnnotationBeanPostProcessor, т.е. там подобным образом

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public Object postProcessBeforeInitialization(final Object bean,  String beanName) throws BeansException {
  ReflectionUtils.doWithFields(bean.getClass(), new FieldCallback() {
   public void doWith(Field field) throws IllegalArgumentException,
     IllegalAccessException {
       
       
      
    ReflectionUtils.makeAccessible(field);
    
     
    
    if (Проверяем наличие какой-нибудь нужной аннотации) {

     //Что-то делаем, например     
     field.set(bean, "что-нибудь");
    }
   }
  });
  return bean;
 }
}
...
Рейтинг: 0 / 0
26.03.2013, 22:13:55
    #38199485
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает/устроен Spring внутри?
rdm,

Так а в чем вопрос тогда? Чтобы понять спринг надо понять две вещи - DI и AOP, что тебя волнует?
...
Рейтинг: 0 / 0
26.03.2013, 22:18:07
    #38199487
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает/устроен Spring внутри?
забыл никrdm,

Так а в чем вопрос тогда? Чтобы понять спринг надо понять две вещи - DI и AOP, что тебя волнует?

Ну скажем doc An ApplicationContext automatically detects any beans that are defined in the configuration metadata which implement the BeanPostProcessor interface.
Для этого Spring использует AOP?
...
Рейтинг: 0 / 0
26.03.2013, 23:15:02
    #38199538
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает/устроен Spring внутри?
Или например как соотносятся Pointcut и прокси обьекты (JDK proxy).
Например Pointcut
Код: java
1.
2.
//the execution of any public method:
execution(public * *(..))


для "чего" будет создавать прокси объекты? Для все классов содержащих открытые методы чтоли?
...
Рейтинг: 0 / 0
26.03.2013, 23:29:34
    #38199553
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает/устроен Spring внутри?
Вот еще пример
Код: java
1.
2.
3.
4.
5.
6.
@Around("execution(* public *(..))")
public Object preProcessQueryPattern(ProceedingJoinPoint pjp)
throws Throwable {
  //Какая-то логика обработки
  pjp.proceed();
}



Вот это логика где реализуется? Т.е. код "логики" копируется каким-то образов в прокси обьект?
Т.е. я правильно понимаю алгоритм.
1- для всех объектов содержащих пулблик методы будут созданы прокси объекты.
2- код "логики" из описания аспекта будет скопирован в код создаваемых прокси объективов.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
public class AllClassWithInPulicMethodProxy implements java.lang.reflect.InvocationHandler {

    private Object obj;

    public static Object newInstance(Object obj) {
	return java.lang.reflect.Proxy.newProxyInstance(
	    obj.getClass().getClassLoader(),
	    obj.getClass().getInterfaces(),
	    new AllClassWithInPulicMethodProxy(obj));
    }

    private AllClassWithInPulicMethodProxy(Object obj) {
	this.obj = obj;
    }

    public Object invoke(Object proxy, Method m, Object[] args)
	throws Throwable
    {
        Object result;

	try {

	    //тут та самая логика из аспекта???

	    result = m.invoke(obj, args);
        } catch (InvocationTargetException e) {
	    throw e.getTargetException();
        } catch (Exception e) {
	    throw new RuntimeException();
	} f
	return result;
    }
}
...
Рейтинг: 0 / 0
27.03.2013, 00:29:55
    #38199624
Alex Serezhenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает/устроен Spring внутри?
почитайте про cglib, dynamic proxy и тд.
...
Рейтинг: 0 / 0
27.03.2013, 17:06:32
    #38200881
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает/устроен Spring внутри?
Alex Serezhenkoпочитайте про cglib, dynamic proxy и тд.
Я сверху привел несколько примеров, что в них неправильно?
...
Рейтинг: 0 / 0
27.03.2013, 20:09:28
    #38201268
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает/устроен Spring внутри?
Видимо я очень сильно ошибаюсь)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает/устроен Spring внутри? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]