Spring Framework реализован метод имплантации Есть много, один сконфигурирована инъекции
Типичная трехуровневая архитектура:
. 1 пакет ДАО; 2 . 3 Импорт entity.User; . 4 . 5 / ** . 6 * DAO интерфейс увеличивается, определяет требуемое сохранение метода 7. * / 8. Общественный интерфейс UserDao { 9. Общественного недействительными Сохранить (Пользователь пользователя); 10 }
. 1 Пакет dao.impl; 2 . 3 Импорт dao.UserDao; 4 . Импорт entity.User; . 5 . 6 / ** . 7 * Класс пользователя ДАО, IDao реализуют интерфейсы для работы класса пользователя персистирующей 8. * / 9. Общественный класс UserDaoImpl орудия UserDao { 10 . 11 общественности недействительным сохранить (пользователя пользователя) { 12 // здесь не достичь полного операций с базами данных просто иллюстративными 13 System.out.println ( «пользовательская информация хранится в базе данных» ); 14 } 15 }
. 1 Пакет -Service; 2 . 3 Импорт entity.User; . 4 . 5 / ** . 6 * сервисный интерфейс пользователя , который определяет необходимые бизнес - методу . 7 * / . 8 публичного интерфейс {UserService . 9 общественных недействительный AddNewUser (Пользователь пользователя); 10 }
. 1 пакет service.impl; 2 . 3 Импорт service.UserService; . 4 Импорт dao.UserDao; . 5 Импорт entity.User; . 6 . 7 / ** . 8 * пользовательский класс трафика, для достижения управления бизнес - функций пользователя 9. * / 10 общественного класса UserServiceImpl орудия UserService { . 11 12 // декларация опорного интерфейса типа и расцепления класс реализации 13 является Private UserDao DAO; 14 15 // генерируется конструктор без аргументов 16 общественных UserServiceImpl () { 17. 18 } . 19 20 // параметры , как конструктор назначения DAO 21 общественных UserServiceImpl (UserDao DAO) { 22 это .dao = ДАО; 23 } 24 25 общественных UserDao getDao () { 26 возврата ДАО; 27 } 28 29 // свойства DAO сеттер аксессор вызывается пружина, инъекция сеттера для достижения 30 общественных пустот setDao (UserDao DAO) { 31 это .dao = ДАО; 32 } 33 34 общественного недействительный AddNewUser (Пользователь Пользователь) { 35 //Метод ДАО вызывает пользователя , чтобы сохранить информацию пользователя 36 dao.save (Пользователь); 37 [ } 38 }
Классы сущностей:
. 1 пакет Entity; 2 . 3 / ** . 4 * Класс сущности пользователя . 5 * / 6. Общественный класс Пользователь орудия java.io.Serializable { 7. Частный Integer ID; // идентификатор пользователя . 8 Private Строка имя пользователя; // имя пользователя . 9 Private Строка пароля ; // пароль 10 Private строки Email; // электронной почты . 11 12 // добытчики и связующий 13 является общественным целым GetId () { 14 вернуть идентификатор; 15 } 16 17 общественных пустот SETID (целочисленный идентификатор) { 18 это .id = ID; 19 } 20 21 общественного Строка GetUserName () { 22 возврата имени пользователя; 23 } 24 25 общественных недействительными setUsername (String имя пользователя) { 26 это .username = имя пользователя; 27 } 28 29 общественности Строка GetPassword () { 30 возврата пароля; 31 } 32 33 общественный недействительный SetPassword (строка пароль) { 34 это .password = пароль; 35 } 36 37 общественности Строка getEmail () { 38 возвращение по электронной почте; 39 } 40 41 общественного недействительного setEmail (Строка почта) { 42 это .EMAIL = адрес электронной почты; 43 } 44 45 }
Основной конфигурационный файл:
1 <? XML версия = "1.0" кодирующая = "UTF-8"?> 2 <бобы Xmlns = "http://www.springframework.org/schema/beans" 3 Xmlns: XSI = "HTTP: // WWW. w3.org/2001/XMLSchema-instance "XMLNS: АОП = "http://www.springframework.org/schema/aop" 4 XSI: SchemaLocation =" http://www.springframework.org/schema/beans 5 HTTP : // www.springframework.org/schema/beans/spring-beans-3.2.xsd 6 HTTP: // www.springframework.org/schema/aop 7 HTTP: // www.springframework.org/schema/aop/spring -aop-3.2.xsd "> 8 <! -以上是Spring框架的头信息-> 9 <! - размещение экземпляра объекта , чтобы управлять -> 10 <! - Вариант построены с использованием инъекции -> . 11 <фасоль ID = "userDao" класс = "dao.impl.UserDaoImpl"> </ фасоль> 12 <идентификатор боба = "UserService" класс = «service.impl. UserServiceImpl "> 13 <! - через конструктор , выполненный с возможностью достижения инъекции -> 14 <конструктор-Арг> 15 <REF = боб" userDao «/> 16 </ Арг-конструктор> . 17 </ фасоль> 18 19. </ бобы>
Метод испытания:
1 пакет теста; 2 3 импорта org.junit.Test; 4 импорт org.springframework.context.ApplicationContext; 5 импорта org.springframework.context.support.ClassPathXmlApplicationContext; 6 7 импорта service.UserService; 8 импорта service.impl.UserServiceImpl; - 10 импорт entity.User; 11 12 13 общественного класса AopTest { 14 15 @Test 16 общественных пустот aopTest () { 17 ApplicationContext CTX = новый ClassPathXmlApplicationContext ( "applicationContext.xml" ); 18 UserService обслуживание = (UserService) ctx.getBean ( "UserService" ); 19 20 пользователь User = новый пользователь (); 21 user.setId (1 ); 22 user.setUsername ( "тест" ); 23 user.setPassword ( "123456" ); 24 user.setEmail ( "[email protected]" ); 25 26 service.addNewUser (пользователь); 27 } 28 29 }
Результат:
12-29 16:22:52 [INFO] org.springframework.context.support.ClassPathXmlApplicationContext -Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@2db0f6b2: запуск дата [Вс 29 декабря 16:22:52 CST 2019]; корень контекста иерархии 12-29 16:22:52 [INFO] org.springframework.beans.factory.xml.XmlBeanDefinitionReader -Loading определения XML-бобов из пути класса ресурса [applicationContext.xml] 12-29 16:22:52 [INFO] org.springframework.beans.factory.support.DefaultListableBeanFactory -Перед инстанцировании одиночек в org.springframework.beans.factory.support.DefaultListableBeanFactory@2f686d1f: задающие бобы [userDao, UserService]; корень заводской иерархии Информация о пользователе хранится в базе данных