powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает/устроен Spring внутри?
12 сообщений из 12, страница 1 из 1
Как работает/устроен Spring внутри?
    #38199432
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я честно прочитал бОльшую часть документации по spring, но вот не понимаю как это все работает внутри.
Поделитесь ссылками на эту тему.
...
Рейтинг: 0 / 0
Как работает/устроен Spring внутри?
    #38199445
Alex Serezhenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maven, download sources - изучайте :)
стройте диаграммы, ломайте голову=) оч много рефлексии..
...
Рейтинг: 0 / 0
Как работает/устроен Spring внутри?
    #38199447
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что ты подразумеваешь под словами "как это все работает внутри"
Ну так и работает, тебе просто надо понять что такое dependency injection
...
Рейтинг: 0 / 0
Как работает/устроен Spring внутри?
    #38199451
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Serezhenkomaven, download sources - изучайте :)
стройте диаграммы, ломайте голову=) оч много рефлексии..
Я смотрю через http://grepcode.com, хотя возможно есть что-то поудобнее для On-line просмотра.
...
Рейтинг: 0 / 0
Как работает/устроен Spring внутри?
    #38199471
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никчто ты подразумеваешь под словами "как это все работает внутри"
Ну так и работает, тебе просто надо понять что такое 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
Как работает/устроен Spring внутри?
    #38199485
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdm,

Так а в чем вопрос тогда? Чтобы понять спринг надо понять две вещи - DI и AOP, что тебя волнует?
...
Рейтинг: 0 / 0
Как работает/устроен Spring внутри?
    #38199487
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник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
Как работает/устроен Spring внутри?
    #38199538
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или например как соотносятся Pointcut и прокси обьекты (JDK proxy).
Например Pointcut
Код: java
1.
2.
//the execution of any public method:
execution(public * *(..))


для "чего" будет создавать прокси объекты? Для все классов содержащих открытые методы чтоли?
...
Рейтинг: 0 / 0
Как работает/устроен Spring внутри?
    #38199553
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще пример
Код: 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
Как работает/устроен Spring внутри?
    #38199624
Alex Serezhenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почитайте про cglib, dynamic proxy и тд.
...
Рейтинг: 0 / 0
Как работает/устроен Spring внутри?
    #38200881
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Serezhenkoпочитайте про cglib, dynamic proxy и тд.
Я сверху привел несколько примеров, что в них неправильно?
...
Рейтинг: 0 / 0
Как работает/устроен Spring внутри?
    #38201268
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо я очень сильно ошибаюсь)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает/устроен Spring внутри?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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