-
Как работает Hibernate и почему вы должны его использовать?
принцип:
1. Читать и проанализировать файл конфигурации
2. Читать и анализировать информацию о отображении и создать SessionFactory
3. Открытый сессия
4. Создание транзакционных переводов
5. Персистенция операций
6. отправить транзакцию
7.close Session
8. Close SessionFactory
Зачем использовать:
1. Инкапсулируется код для доступа JDBC к базе данных, который значительно упрощает утомительный и повторяющийся код на уровне доступа к данным.
2. Hibernate - это основная структура постоянства, основанная на JDBC и отличной реализации ORM. Это значительно упрощает кодирующую работу слоя DAO.
3. Hibernate использует механизм отражения Java вместо программы улучшения байт -кодов для достижения прозрачности.
4. Производительность Hibernate очень хороша, потому что это легкая структура. Гибкость картирования является выдающейся. Он поддерживает различные реляционные базы данных, начиная от от одного до одного до многих-ко многим сложным отношениям.
2. Как Hibernate Lazy Load?
1. Hibernate2 Ленивая нагрузка реализация: а) объект объекта b) Коллекция (Сбор)
2. Hibernate3 обеспечивает ленивую функцию загрузки свойств
Когда в памяти не существует данных, в памяти не существует данных. . производительность.
3. Как реализовать отношения между классами в Hibernate?
Отношения между классами в основном отражаются в работе между таблицами. от одного ко многим, многие-многие,
4. Давайте поговорим о механизме кэширования Hibernate
1. Внутренний кэш существует в Hibernate, также называемый кэш первого уровня, который принадлежит кешу уровня транзакции приложения.
2. Кэш второго уровня:
а) Приложение и кеш
б) Распределенные условия кэша: данные не будут изменены третьей стороной, размер данных находится в пределах приемлемого диапазона, частота обновления данных низкая, те же данные часто используются в системе, некритические данные
в) реализация стороннего кеша
5. Метод гибернатного запроса
SQL, критерии, композиция объекта
HQL :
1. Атрибут запрос
2. Запрос параметра, названный запрос параметра
3. Связанный запрос
4. Пейджинг -запрос
5. Статистические функции
6. Как оптимизировать Hibernate?
1. Используйте двустороннюю ассоциацию от одного ко многим вместо односторонней ассоциации от одного ко многим.
2. Гибкое использование односторонних ассоциаций с одним ко многим
3.
4. Настройка кеша объектов и не используйте кэш сбора
5. Используйте сумку для коллекций от одного ко многим и установить для множества коллекций.
6. Используйте явный полиморфизм в наследственных классах
7. Должно быть меньше полей таблицы, не бойтесь слишком большого количества табличных ассоциаций и иметь поддержку кеша второго уровня.
7. Как работают стойки? Зачем использовать стойки?
Рабочий механизм:
Рабочий процесс стойки:
Когда веб -приложение запустится, инициализация будет загружена.
Считайте информацию о конфигурации из файла struts-config.xml и хранить их в различных объектах конфигурации.
-(1) Получить экземпляр действия, который соответствует запросу пользователя.
-(2) Если экземпляр ActionForm не существует, создайте объект ActionForm и сохраните данные формы, представленные клиентом в объект ActionForm;
-(3) Определите, требуется ли валидация формы на основе информации о конфигурации.
-(4) Если метод ActionForm Validate () возвращает NULL или возвращает объект Actuiberrors, который не содержит ActionMessage, это означает, что проверка формы является успешной;
-(5) ActionServlet решает, какое действие для пересылки запроса на основе информации о отображении, содержащейся в действии.
-(6) Метод Action's Execute () возвращает объект ActionForward, а ActionServlet пересылает запрос клиента в компонент JSP, на который указан объект ActionForward;
-(7) объект ActionForward указывает на компонент JSP для генерации динамической веб -страницы и возвращает ее клиенту;
Зачем использовать:
Появление технологий JSP, Servlet и Javabean позволяет нам создавать мощные системы приложений предприятия. Но системы, построенные с этими технологиями, очень сложны, поэтому нам нужно правило, правило для организации этих технологий.
Приложения, разработанные на основе стойки, состоят из трех типов компонентов: компонентов контроллера, модельных компонентов и компонентов просмотра.
8. Как проверяют структуру подтверждения Struts?
Настройте конкретные проведения ошибок в файле конфигурации стойки, а затем специфически вызовите метод validate () в форме.
9. Давайте поговорим о моделях дизайна стойки
Режим MVC: ActionSvler загружается и инициализируется при запуске веб -приложения. Когда пользователь представляет форму, создается и заполняется объект Actionform. Validate () Actionform. Execute () получает данные из объекта ActionForm, завершает бизнес -логику и возвращает объект ActionForward. Возвращает его клиенту.
10. Как работает весна и почему это следует использовать?
1. Spring MVC просит все запросы, чтобы быть отправленным в DispatcherServlet, который поручит другие модули системы приложений нести ответственность за фактическую обработку запросов.
2. DispatcherServlet Запросы на одно или несколько ручной работы, чтобы найти контроллер, который обрабатывает запрос.
3. DispatcherServlet Пожалуйста, отправьте запрос на целевой контроллер
4. После того, как контроллер выполняет обработку бизнес -логики, он вернет модель и
5. Dispathcher Запрашивает один или несколько просмотров ViewResolver Parsers, чтобы найти объект View, указанный объектом ModelAndView
6. Объект представления отвечает за рендеринг и возврат его клиенту.
Зачем использовать:
{AOP позволяет разработчикам создавать не-поведенческие проблемы, называемые перекрестными проблемами и вставлять их в код приложения. После использования AOP общественные услуги (такие как ведение журнала, стойкость, транзакции и т. Д.) могут быть разложены на аспекты и применены к объектам домена без увеличения сложности объектной модели объектов домена.
МОК обеспечивает создание среды приложения, которая может построить объекты, а затем передавать эти объекты своих сотрудничающих объектов. Как показывает инверсия слова, МОК похож на JNDI в обратном направлении. Вместо того, чтобы использовать кучу абстрактных фабрик, локаторов обслуживания, синглтонов и прямой конструкции, каждый объект построен из его совместных объектов. Следовательно, контейнер управляет объектом сотрудничества (соавтором).
Несмотря на то, что Spring - это структура AOP, это также контейнер IOC. Лучшее в Spring - это поможет вам заменить объекты. С помощью Spring просто добавьте зависимости (совместные объекты), используя свойства Javabean и файлы конфигурации. Затем легко заменить совместные объекты на похожие интерфейсы при необходимости. }
Spring Framework-это многослойная архитектура, состоящая из 7 четко определенных модулей. Верхние модули пружины строятся поверх основного контейнера, который определяет, как создавать, настраивать и управлять бобами, как показано на рисунке 1.
Каждый модуль (или компонент), который составляет основу пружины, может существовать в одиночку или реализовать в сочетании с одним или несколькими другими модулями. Функции каждого модуля следующие:
☆ Core Container: Core Container обеспечивает основные функции Spring Framework. Основным компонентом основного контейнера является BeanFactory, который является реализацией заводской шаблона. BeanFactory использует шаблон инверсии управления (IOC) для отделения конфигурации и зависимости приложения от фактического кода приложения.
Context Pring: контекст пружины - это файл конфигурации, который предоставляет контекстную информацию для Spring Framework. Весенний контекст включает в себя корпоративные услуги, такие как JNDI, EJB, электронная почта, интернационализация, проверка и диспетчерские функции.
☆ Spring AOP: Через функции управления конфигурацией модуль Spring AOP напрямую интегрирует функции программирования, ориентированные на аспект, в структуру пружины. Следовательно, легко сделать любой объект, управляемый Spring Framework Support AOP. Spring AOP-модуль предоставляет услуги управления транзакциями для объектов в приложениях на основе Spring. Используя Spring AOP, вы можете интегрировать управление декларативными транзакциями в свое приложение, не полагаясь на компоненты EJB.
☆ Spring DAO: уровень абстракции JDBC DAO обеспечивает значимую иерархию исключения, которую можно использовать для управления обработкой исключений и сообщений об ошибках, выброшенных различными поставщиками баз данных. Иерархия исключений упрощает обработку ошибок и значительно уменьшает количество кода исключений, которое необходимо записано (например, открытие и закрытие соединений). Исключительные исключения, ориентированные на JDBC, следуют общей иерархии исключений DAO.
☆ Spring ORM: Spring Framework вводит несколько фреймворков ORM для предоставления объектных инструментов ORM, включая карту JDO, Hibernate и Ibatis SQL. Все они соответствуют общей пружинной транзакции и иерархии исключений DAO.
☆ Spring Web Module: модуль веб-контекста построен в модуле контекста приложения и предоставляет контекст для веб-приложений. Таким образом, Spring Framework поддерживает интеграцию со стойками Джакарты. Веб -модуль также упрощает обработку запросов Multipart и параметры запроса привязки с объектами домена.
☆ Spring MVC Framework: Framework MVC представляет собой полнофункциональную реализацию MVC для создания веб-приложений. Через интерфейс стратегии структура MVC становится высоко настраиваемой, а MVC включает в себя большое количество технологий просмотра, включая JSP, скорость, плитки, ITEXT и POI.
Функции Spring Framework могут использоваться на любом сервере J2EE, и большинство функций также подходят для неуправляемых сред. Основной точкой пружины является поддержка многоразовых объектов бизнеса и доступа к данным, которые не связаны с конкретными услугами J2EE. Нет сомнений в том, что такие объекты могут быть повторно использованы между различными средами J2EE (Web или EJB), отдельными приложениями и тестовыми средами.
МОК и AOP
Основная концепция инверсии шаблона управления (также называемого вмешательством в зависимости) заключается в том, что вы не создаете объекты, но вы описываете, как их создать. Он не подключен непосредственно к объектам и службам в коде, но какой компонент требует того, какой сервис описан в файле конфигурации. Контейнер (в рамках пружины, контейнер IOC) отвечает за их объединение.
В типичном сценарии МОК контейнер создает все объекты и устанавливает необходимые свойства, чтобы соединить их вместе и решить, когда вызовать методы. В следующей таблице приведен режим реализации МОК.
Контейнер IOC Spring Framework реализован с использованием типа 2 и типа 3.
Аспективное программирование
Программирование, ориентированное на аспект, или AOP, представляет собой метод программирования, который позволяет программистам модулировать поведение, которое решает проблемы или типичные линии ответственности, такие как ведение ведения и управление транзакциями. Основной конструкцией AOP являются аспекты, которые инкапсулируют поведение, которое влияет на множественные классы в повторно используемые модули.
AOP и МОК - это дополнительные технологии, которые используют модульный подход для решения сложных проблем при разработке предприятия. В типичном объектно-ориентированном подходе к разработке операторы регистрации могут быть размещены во всех методах и классах Java для реализации функциональности журнала. В подходе AOP службы регистрации, в свою очередь, могут быть модулизованы и применяются объявлять компонентов, которые требуют регистрации. Конечно, преимущество состоит в том, что класс Java не должен знать существование службы журнала, а также не нужно учитывать соответствующий код. Поэтому код приложения, написанный в Spring AOP, слабо связан.
Функциональность AOP полностью интегрирована в контекст управления пружинными транзакциями, ведения ведения и различных других функций.
Контейнер IOC
Ядром дизайна Spring является пакет org.springframework.beans, который предназначен для использования с компонентами Javabean. Этот пакет обычно не используется непосредственно пользователем, но используется сервером в качестве посредника низкого уровня для большинства других функций. Следующей абстракцией самого высокого уровня является интерфейс BeanFactory, который является реализацией шаблона заводской проектирования и позволяет создавать и извлекать объекты по имени. BeanFactory также может управлять отношениями между объектами.
BeanFactory поддерживает две модели объекта.
□ Мономорфная модель обеспечивает общий экземпляр объекта с определенным именем, который можно получить во время запроса. Singleton - это по умолчанию и наиболее часто используемая объектная модель. Идеально подходит для объектов обслуживания без сохранения состояния.
□ Модель прототипа гарантирует, что для каждого поиска создается отдельный объект. Модель прототипа лучше всего подходит, когда каждому пользователю нужен свой собственный объект.
Концепция фабрики бобов является основой весны как контейнера МОК. МОК передает ответственность за обработку вещей от кода приложения к структуре. Как я буду демонстрировать в следующем примере, Spring Framework использует свойства Javabean и данные конфигурации, чтобы указать, какие зависимости должны быть установлены.
Beanfactory Interface
Поскольку org.springframework.beans.factory.beanfactory является простым интерфейсом, он может быть реализован для различных методов хранения. Наиболее часто используемым определением BeanFactory является XMLBeanFactory, которое загружает бобы на основе определений в файле XML, как показано в списке 1.
Список 1. Xmlbeanfactory
Beanfactory Factory = new XmlbeanFactory (new FileInputSteam ("mybean.xml"));
Бобы, определенные в файлах XML, загружаются пассивно, что означает, что сам фасоль не инициализируется до тех пор, пока не требуется боб. Чтобы забрать фасоль из BeanFactory, просто вызовите метод GetBean (), передав имя боба, которое будет получено, как показано в списке 2.
Листинг 2. getBean ()
Mybean mybean = (mybean) factory.getbean ("mybean");
Каждое определение бобов может быть pojo (определяется с именем класса и свойствами инициализации Javabean) или фабрикой. Интерфейс Factorybean добавляет уровень косвенности к приложениям, созданным с использованием Spring Framework.
Пример
Самый простой способ понять инверсию контроля - это увидеть его в действии. Я завершил часть 1 из моей трех частей Spring Series с примером, который демонстрирует, как вводить зависимости вашего приложения (вместо их построения) через пружинный контейнер IOC.
Я использовал использование случая открытия онлайн -учетной записи в качестве отправной точки. Для этой реализации открытие кредитной учетной записи требует, чтобы пользователь взаимодействовал со следующими службами:
☆ Служба кредитного рейтинга, Информация о кредитной истории пользователя запроса.
☆ Удаленная служба связывания сообщений для вставки информации о клиентах и подключения информации о клиентах с помощью информации о кредитной карте и банке для автоматического дебета (если необходимо).
☆ Служба электронной почты для отправки электронных писем о статусе кредитной карты пользователям.
три интерфейса
Для этого примера я предполагаю, что услуги уже существуют, и в идеале интегрируют их свободно связанным образом. В следующем списке показаны API для трех служб.
Листинг 3. CreditTrationInterface
публичный интерфейс CreditRatingInterface {
Общественная логическая getusercredithistoryinformation (icustomer icustomer);
}
Интерфейс кредитного рейтинга, показанный в списке 3, содержит информацию о кредитной истории. Это требует объекта клиента, содержащего информацию о клиенте. Реализация этого интерфейса обеспечивается классом кредита.
Листинг 4. CreditLindingInterface
публичный интерфейс CreditLindingInterface {
public String getUrl ();
public void seturl (String url);
public void linkcreditbankaccount () бросает исключение;
}
Интерфейс, связанный с кредитом, соединяет информацию о кредитной истории с банковской информацией (если это необходимо) и вводит информацию об кредитной карте пользователя. Интерфейс кредитной ссылки является удаленным сервисом, а его запрос выполняется с помощью метода geturl (). URL -адрес установлен механизмом конфигурации бобов Spring Framework, о котором я расскажу позже. Реализация этого интерфейса обеспечивается классом кредита.
Листинг 5. EmailInterface
публичный интерфейс по электронной почте {
public void sendemail (icustomer icustomer);
public String getFromeMail ();
public void setfromemail (string fromemail);
public String getPassword ();
public void setPassword (String пароль);
public String getsmtphost ();
public void setsmtphost (String smtphost);
public String getUserid ();
public void setUserid (String userId);
Эта статья поступает из блога CSDN.
-