Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
6 / 6 / 4
Регистрация: 12.04.2014
Сообщений: 46

Spring Аспекты

11.10.2015, 14:54. Показов 1591. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Заранее прошу прощения если тема не в своей ветке.

Имеется набор классов:
1) Рыцарь, выполняющий квесты
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public interface Knight {
    void embarkOnQuest();
}
 
public class BraveKnight implements Knight {
    private Quest quest;
    public BraveKnight(Quest quest) {
        this.quest = quest; // Внедрение сценария подвига
    }
    @Override
    public void embarkOnQuest() {
        quest.embark();
    }
}
2) Квест на выполнение
Java
1
2
3
4
5
6
7
8
9
10
public interface Quest {
    void embark();
}
 
public class SlayDragonQuest implements Quest {
    @Override
    public void embark() {
        System.out.println("Убиватель дракона");
    }
}
3) Менестрель, воспеватель подвигов рыцаря
Java
1
2
3
4
5
6
7
8
9
public class Minstrel {
    public void singBeforeQuest() { // Вызывается перед выполнением задания
        System.out.println("Fa la la; The knight is so brave!");
    }
    public void singAfterQuest() { // Вызывается после выполнения задания
        System.out.println(
                "Tee hee he; The brave knight did embark on a quest!");
    }
}
Так же имеется xml, в котором происходит связывание вышеозначенных классов
XML
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
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
 [url]http://www.springframework.org/schema/beans/spring-beans-3.0.xsd[/url]
 [url]http://www.springframework.org/schema/aop[/url]
 http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    <bean id="knight" class="com.springinaction.knights.BraveKnight">
        <constructor-arg ref="quest" />
    </bean>
    <bean id="quest"
          class="com.springinaction.quests.SlayDragonQuest" />
    <!-- Объявление компонента Minstrel -->
    <bean id="minstrel"
          class="com.springinaction.knights.Minstrel" />
    <aop:config>
        <aop:aspect ref="minstrel">
            <!-- Объявление точки внедрения -->
            <aop:pointcut id="embark"
                          expression="execution(* *.embarkOnQuest(..))" />
            <aop:before pointcut-ref="embark"
                        method="singBeforeQuest"/> <!-- Операция, выполняемая до -->
            <aop:after pointcut-ref="embark"
                       method="singAfterQuest"/> <!-- Операция, выполняемая после -->
        </aop:aspect>
    </aop:config>
</beans>
При добавлении аспекта, чтоб менестрель следил за действиями рыцаря и воспевал его система ломается. Без него рыцарь спокойно убивает дракона, но менестрелю до этого фиолетово.

Вопрос: в чем я ошибся?

Пример из книги "Spring in action"
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.10.2015, 14:54
Ответы с готовыми решениями:

Spring MVC. 404 ошибка при включении Spring Data JPA в проект
Добрый день. Есть простой шаблонный проект с использованием Spring MVC и Maven. С зависимостями Spring MVC проект собирается нормально и...

Перевод проекта из Spring Maven в обычный Spring MVC
Здравствуйте. Подскажите, реально ли взять готовый проект, например -...

задания по spring core и spring mvc для новичков
Какие задания можно предложить новичкам для выполнения после знакомства их с spring core и mvc ?

6
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
11.10.2015, 15:13
Цитата Сообщение от Гоблин666 Посмотреть сообщение
система ломается
обломки маленькие или не очень?

Может все такие ошибку покажите?
0
6 / 6 / 4
Регистрация: 12.04.2014
Сообщений: 46
11.10.2015, 15:28  [ТС]
KEKCoGEN, Режим вывода INFO

Кликните здесь для просмотра всего текста

15:25:09,525 INFO main support.ClassPathXmlApplicationContext:5 10 - Refreshing org.springframework.context.support.Clas sPathXmlApplicationContext@6ae40994: startup date [Sun Oct 11 15:25:09 MSK 2015]; root of context hierarchy
15:25:09,589 INFO main xml.XmlBeanDefinitionReader:317 - Loading XML bean definitions from class path resource [kinght.xml]
15:25:09,992 WARN main support.ClassPathXmlApplicationContext:4 87 - Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'knight' defined in class path resource [kinght.xml]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'org.springframework.aop.aspectj.AspectJ PointcutAdvisor#0': Cannot create inner bean '(inner bean)#34cd072c' of type [org.springframework.aop.aspectj.AspectJM ethodBeforeAdvice] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCr eationException: Error creating bean with name '(inner bean)#34cd072c': Cannot resolve reference to bean 'embark' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'embark': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.cre ateBean(AbstractAutowireCapableBeanFacto ry.java:472)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory$1.getObject(Abstra ctBeanFactory.java:303)
at org.springframework.beans.factory.suppor t.DefaultSingletonBeanRegistry.getSingle ton(DefaultSingletonBeanRegistry.java:23 0)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory.doGetBean(Abstract BeanFactory.java:299)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory.getBean(AbstractBe anFactory.java:194)
at org.springframework.beans.factory.suppor t.DefaultListableBeanFactory.preInstanti ateSingletons(DefaultListableBeanFactory .java:755)
at org.springframework.context.support.Abst ractApplicationContext.finishBeanFactory Initialization(AbstractApplicationContex t.java:757)
at org.springframework.context.support.Abst ractApplicationContext.refresh(AbstractA pplicationContext.java:480)
at org.springframework.context.support.Clas sPathXmlApplicationContext.<init>(ClassP athXmlApplicationContext.java:139)
at org.springframework.context.support.Clas sPathXmlApplicationContext.<init>(ClassP athXmlApplicationContext.java:83)
at com.springinaction.Start.main(Start.java :13)
at sun.reflect.NativeMethodAccessorImpl.inv oke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.inv oke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.jav a:43)
at java.lang.reflect.Method.invoke(Method.j ava:497)
at com.intellij.rt.execution.application.Ap pMain.main(AppMain.java:140)
Caused by: org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'org.springframework.aop.aspectj.AspectJ PointcutAdvisor#0': Cannot create inner bean '(inner bean)#34cd072c' of type [org.springframework.aop.aspectj.AspectJM ethodBeforeAdvice] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCr eationException: Error creating bean with name '(inner bean)#34cd072c': Cannot resolve reference to bean 'embark' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'embark': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
at org.springframework.beans.factory.suppor t.BeanDefinitionValueResolver.resolveInn erBean(BeanDefinitionValueResolver.java: 313)
at org.springframework.beans.factory.suppor t.BeanDefinitionValueResolver.resolveVal ueIfNecessary(BeanDefinitionValueResolve r.java:129)
at org.springframework.beans.factory.suppor t.ConstructorResolver.resolveConstructor Arguments(ConstructorResolver.java:648)
at org.springframework.beans.factory.suppor t.ConstructorResolver.autowireConstructo r(ConstructorResolver.java:140)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.aut owireConstructor(AbstractAutowireCapable BeanFactory.java:1139)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.cre ateBeanInstance(AbstractAutowireCapableB eanFactory.java:1042)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.doC reateBean(AbstractAutowireCapableBeanFac tory.java:504)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.cre ateBean(AbstractAutowireCapableBeanFacto ry.java:476)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory$1.getObject(Abstra ctBeanFactory.java:303)
at org.springframework.beans.factory.suppor t.DefaultSingletonBeanRegistry.getSingle ton(DefaultSingletonBeanRegistry.java:23 0)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory.doGetBean(Abstract BeanFactory.java:299)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory.getBean(AbstractBe anFactory.java:199)
at org.springframework.aop.framework.autopr oxy.BeanFactoryAdvisorRetrievalHelper.fi ndAdvisorBeans(BeanFactoryAdvisorRetriev alHelper.java:92)
at org.springframework.aop.framework.autopr oxy.AbstractAdvisorAutoProxyCreator.find CandidateAdvisors(AbstractAdvisorAutoPro xyCreator.java:101)
at org.springframework.aop.aspectj.autoprox y.AspectJAwareAdvisorAutoProxyCreator.sh ouldSkip(AspectJAwareAdvisorAutoProxyCre ator.java:103)
at org.springframework.aop.framework.autopr oxy.AbstractAutoProxyCreator.postProcess BeforeInstantiation(AbstractAutoProxyCre ator.java:243)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.app lyBeanPostProcessorsBeforeInstantiation( AbstractAutowireCapableBeanFactory.java: 984)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.res olveBeforeInstantiation(AbstractAutowire CapableBeanFactory.java:955)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.cre ateBean(AbstractAutowireCapableBeanFacto ry.java:466)
... 15 more
Caused by: org.springframework.beans.factory.BeanCr eationException: Error creating bean with name '(inner bean)#34cd072c': Cannot resolve reference to bean 'embark' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'embark': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
at org.springframework.beans.factory.suppor t.BeanDefinitionValueResolver.resolveRef erence(BeanDefinitionValueResolver.java: 359)
at org.springframework.beans.factory.suppor t.BeanDefinitionValueResolver.resolveVal ueIfNecessary(BeanDefinitionValueResolve r.java:108)
at org.springframework.beans.factory.suppor t.ConstructorResolver.resolveConstructor Arguments(ConstructorResolver.java:634)
at org.springframework.beans.factory.suppor t.ConstructorResolver.autowireConstructo r(ConstructorResolver.java:140)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.aut owireConstructor(AbstractAutowireCapable BeanFactory.java:1139)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.cre ateBeanInstance(AbstractAutowireCapableB eanFactory.java:1042)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.doC reateBean(AbstractAutowireCapableBeanFac tory.java:504)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.cre ateBean(AbstractAutowireCapableBeanFacto ry.java:476)
at org.springframework.beans.factory.suppor t.BeanDefinitionValueResolver.resolveInn erBean(BeanDefinitionValueResolver.java: 299)
... 33 more
Caused by: org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'embark': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.ins tantiateBean(AbstractAutowireCapableBean Factory.java:1101)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.cre ateBeanInstance(AbstractAutowireCapableB eanFactory.java:1046)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.doC reateBean(AbstractAutowireCapableBeanFac tory.java:504)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.cre ateBean(AbstractAutowireCapableBeanFacto ry.java:476)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory.doGetBean(Abstract BeanFactory.java:322)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory.getBean(AbstractBe anFactory.java:194)
at org.springframework.beans.factory.suppor t.BeanDefinitionValueResolver.resolveRef erence(BeanDefinitionValueResolver.java: 351)
... 41 more
Exception in thread "main" org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'knight' defined in class path resource [kinght.xml]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'org.springframework.aop.aspectj.AspectJ PointcutAdvisor#0': Cannot create inner bean '(inner bean)#34cd072c' of type [org.springframework.aop.aspectj.AspectJM ethodBeforeAdvice] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCr eationException: Error creating bean with name '(inner bean)#34cd072c': Cannot resolve reference to bean 'embark' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'embark': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
Caused by: java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.cre ateBean(AbstractAutowireCapableBeanFacto ry.java:472)
at java.lang.Class.getDeclaredConstructors0 (Native Method)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory$1.getObject(Abstra ctBeanFactory.java:303)
at java.lang.Class.privateGetDeclaredConstr uctors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.ja va:3075)
at java.lang.Class.getDeclaredConstructor(C lass.java:2178)
at org.springframework.beans.factory.suppor t.SimpleInstantiationStrategy.instantiat e(SimpleInstantiationStrategy.java:80)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.ins tantiateBean(AbstractAutowireCapableBean Factory.java:1094)
... 47 more
Caused by: java.lang.ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWor ld$ReflectionWorldException
at java.net.URLClassLoader.findClass(URLCla ssLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoa der.java:424)
at org.springframework.beans.factory.suppor t.DefaultSingletonBeanRegistry.getSingle ton(DefaultSingletonBeanRegistry.java:23 0)
at sun.misc.Launcher$AppClassLoader.loadCla ss(Launcher.java:331)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory.doGetBean(Abstract BeanFactory.java:299)
at java.lang.ClassLoader.loadClass(ClassLoa der.java:357)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory.getBean(AbstractBe anFactory.java:194)
... 53 more
at org.springframework.beans.factory.suppor t.DefaultListableBeanFactory.preInstanti ateSingletons(DefaultListableBeanFactory .java:755)
at org.springframework.context.support.Abst ractApplicationContext.finishBeanFactory Initialization(AbstractApplicationContex t.java:757)
at org.springframework.context.support.Abst ractApplicationContext.refresh(AbstractA pplicationContext.java:480)
at org.springframework.context.support.Clas sPathXmlApplicationContext.<init>(ClassP athXmlApplicationContext.java:139)
at org.springframework.context.support.Clas sPathXmlApplicationContext.<init>(ClassP athXmlApplicationContext.java:83)
at com.springinaction.Start.main(Start.java :13)
at sun.reflect.NativeMethodAccessorImpl.inv oke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.inv oke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.jav a:43)
at java.lang.reflect.Method.invoke(Method.j ava:497)
at com.intellij.rt.execution.application.Ap pMain.main(AppMain.java:140)
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
11.10.2015, 15:33
Лучший ответ Сообщение было отмечено Гоблин666 как решение

Решение

Гоблин666,
java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
1
6 / 6 / 4
Регистрация: 12.04.2014
Сообщений: 46
11.10.2015, 15:34  [ТС]
Вывод с затиранием секции aop:config
Кликните здесь для просмотра всего текста

15:26:11,260 INFO main support.ClassPathXmlApplicationContext:5 10 - Refreshing org.springframework.context.support.Clas sPathXmlApplicationContext@6ae40994: startup date [Sun Oct 11 15:26:11 MSK 2015]; root of context hierarchy
15:26:11,340 INFO main xml.XmlBeanDefinitionReader:317 - Loading XML bean definitions from class path resource [kinght.xml]
Убиватель дракона

Process finished with exit code 0


P.S. Вывод в дебаге не пролазит под спойлер, знаков много
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
11.10.2015, 15:34
http://www.mkyong.com/spring/c... exception/
http://stackoverflow.com/quest... ctionworld
0
6 / 6 / 4
Регистрация: 12.04.2014
Сообщений: 46
11.10.2015, 15:37  [ТС]
KEKCoGEN, Благодарю, библиотечку не прикрутил.

Тему можно закрывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.10.2015, 15:37
Помогаю со студенческими работами здесь

Jetty embedded + Spring MVC + Spring Security
Добрый день. По роду работы приходилось писать на JavaSE, в том числе и сложные клиент/серверные программы. Использовал Netty, Apache...

Spring: а как вы разрешаете зависимости для spring ?
Прикручиваю авторизацию к своему мини-серверу и таки понимаю что я 5 минут ищу решение и 15 минут ищу куда переехала вон та библиотека в...

Spring Framework - запуск примеров Spring
Здравствуйте, уважаемые форумчане, хочу освоить Spring Framework, прошу помощи у тех, кто знаком с этой технологией. Собственно есть...

Что такое Spring, Spring Boot?
Здравствуйте. Никогда не использовал Spring, Spring Boot. Возник такой вопрос можно ли его использовать в IDE для java Se. Или для...

Spring в Spring Boot context
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( &quot;applicationContext.xml&quot; ); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru