Строительные леса, которые давно доминировали на поле Javaee, привело к Spring Struts2 Mybatis/Hibernate;
Весна:
Весна не только для Java Services. Как реализация Spring в качестве стандарта CGI, это не просто структура в поле Java, но платформа C# все еще может принести пользу; Spring предоставляет различные удобные методы конфигурации аннотаций, такие как абстракция или интегрированные решения Bootde, которые значительно упрощают основу проекта Javaee;
Во время использования весны эти две стороны дифференцированы, некоторые являются легкими аннотациями, а некоторые-это полные аннотации.
Прежде всего, предпосылка аннотации заключается в том, что она должна пройти через прокси, динамический, статический и CGLIB -прокси. Для легких аннотаций угол является статическим или одноразовым аннотациями.
Например, аннотации контроллера, эти одноразовые аннотации или аннотации времени компиляции инициализируются в контексте проекта как неявное одноразовое сканирование, и связанные с ними аннотации, такие как сервис, предоставляя экземпляры Singleton легких объектов. Считается первым выбором. Это снижает стоимость прокси и размышлений в течение периода выполнения, а также экономит лучшие ресурсы для стекла времени выполнения.
Другой тип, такой как реакция,-это динамическая аннотация или аннотация времени выполнения. Каждый раз, когда вы просите, будет выполнено отражение аннотации. Аннотация периода бега, конечно, занимать ресурсы.
В общем, не необходимых аннотации могут быть полностью проигнорированы. Основываясь на методе запроса и ответа, основанном на основе сервлета, нет MVC, который не может быть решена, принимая параметры, передача параметров, возвращение и т. Д., И нет необходимости в аннотациях во время выполнения. Аннотации во время выполнения, кажется, уменьшают количество кода. Чтобы восполнить различные недостатки в этом процессе, будет запущена динамическая аннотация круга для выполнения аннотации, которую вы используете внутри метода. Для аннотаций параметров, записанных в методе, какой код отсутствует по сравнению с использованием запроса получить сами? Просто исходный одноступенчатый процесс был добавлен для добавления слоя перехвата кода.
Как узнать, является ли аннотация аннотацией во время выполнения или времени компиляции, очень просто. Нажмите Ctrl+Mouse, и вы увидите:
@Target ({elementtype.type, elementtype.method})
@Retention (handentpolicy.runtime)
@Documented
Удерживая этот тип перечисления полностью и четко иллюстрирует период используемой вами аннотации.
Все любят использовать синглтона с весной, что является отличным способом. Синглтон не имеет ничего общего с самой параллельностью, за исключением того, что вы должны заставить его конкурировать за идентификацию ресурсов.
Если в вашем проекте должно быть много объектов прототипа, это означает, что вы злоупотребляли или использовали неправильный объект. MVC в основном имеет входящие параметры и возврат. Каждый запрос - это поток. Отдельный ответ запроса имеет то, что они вводят и выходят, что полностью изолирован. Из этого, когда дело доходит до Mybatis, многие люди используют различные ресмпетры в конфигурации Mybatis, и каждый раз, когда различные бобы возвращаются взад -вперед. После запроса бобы как параметры и результаты должны быть один раз. Поверхность Mybatis ясна для технического обслуживания SQL, что за счет значительного снижения эффективности JDBC. Тогда никого не заботится об этом. Для них бобы ничего не имеют, и они не понимают и не заботятся о GC. Если они получают проблемы, добавьте память и добавьте память в верхнюю часть. Все, что они решают, - это проблема времени и использовать пространство для обмена временем. С теми же параметрами и отображением результатов, то если вы используете карту JDK, которая лучше, это естественно собственная карта JDK.
Я всегда упорно верил, что потребление собственного объекта JDK намного меньше, чем потребление самого определения боба. Почему, извините, я тоже не знаю. Так что я всегда прихожу на карту и карту. При использовании Mybatis вы должны внимательно обнаружить, являются ли ваши вещи в вашем классе? Метод очень прост. В журнале проекта открывайте отладон, чтобы увидеть, каждый раз создается ваш журнал новым SQLSession. Если это так, вы должны отметить, что ваш сеанс Mybatis не объединен и не охвачен вещами. Если в методе есть конкурентоспособный SQL, не существует ошибки в извинениях, но обнаруживается, что база данных не выполняет ваш SQL. Вскоре вы обнаружите, что пул соединений используется очень быстро и часто создаст новые соединения. Конечно, если вы не можете использовать Mybatis, не стесняйтесь, правильно не использовать его.
Почему мы должны пытаться использовать статические аннотации? Это очень просто. Весенние занятия в основном синглтоны. Проекты достаточно большие, а экземпляры бобов достаточно. Что занимаются этими синглтонами? Экземпляр объекта находится в пространстве кучи и упоминается в стеке. Итак, когда GC перерабатывает объекты из этих синглтонов? что вы думаете? Следовательно, на основе аннотации постарайтесь свести к минимуму использование динамического прокси. Оставьте больше ресурсов для использования, где это необходимо.
В прошлом мы говорили, что нет кучи, но теперь строковая постоянная пул JDK1.7 уже вошел в кучу.
Что лучше, тип компиляции или интерпретация? Конечно, он аналитический, а тип компиляции аналогичен модели посредничества. Поэтому гораздо сложнее создать отличный составной язык, чем интерпретированный язык.
Структура сети очень ясна. Во -первых, это все еще в контексте, а затем серия компонентов в последовательности. Самая важная вещь, которую мы - компонент сервлета, который является стандартом Javaee, а остальные веб -компоненты являются стандартами протокола, которые должны иметь каждый. Тогда вы увидите, что картирование сервлетов во многих проектах является /, что является плохим способом. Поскольку это очень просто, JS или CSS никогда не нужно обрабатывать через сервлеты. Следовательно, отображение в основном учитывает взаимодействие с компонентами сервера веб -контейнеров и, как правило, дает два типа идентификации, такие как .do и .action .do требует аутентификации разрешения и т. Д., Действие прямо выделяется. JS и т. Д. Не нужно входить в сервлет и возвращаться непосредственно из веб -контекста в соответствии с URL, а затем невозможно перехватить и выпустить MVC в MVC. Это пустая трата времени для создания проблем и решения проблем, что не является хорошим способом. Таким образом, независимо от того, вовлечен ли Nginx или нет, ваши статические ресурсы являются статичными для веб -контейнеров и не имеют никаких отношений с сервлетами. Сервлеты относятся только к тому, что вам нужно справиться.
Где лучшее место для написания JS?
Многие люди привыкли писать JS в JSP или HTML, что плохо.
Когда мы строим проект, мы должны надеяться, что наши JS и CSS будут кэшированы браузером.
Затем JS, записанный в теге сценария страницы, является просто тегом, которая ничем не отличается от Div или ввода и не будет кэширована. Я проверил много информации, и кэш, который я видел, явно сказал, что кеш -блок является файлом. Не этикетка. Поэтому я не совсем уверен в том, чтобы написать ваш CSS JS в файл и представить файл, чтобы файл был кэширован, потому что не существует прямого утвердительного ответа, я предполагаю.
JSP на самом деле является сервлетом, так что это динамичная страница. Каждый раз, когда вам нужно загружать класс для динамического перевода, а затем метод записи в классе записывает страницу в HTTP в браузер и отменяет браузер. Если это HTML, это статично. Динамичный и гибкий, нет никаких сомнений в том, что, поскольку это сервлет, это объект Java, а различные метки и методы Java называются возможностями. Статические страницы должны быть обработаны сами. Если вы используете макрозащитный язык, аналогичный статическим страницам, лучше использовать JSP напрямую.
Сколько данных загружается за раз на странице?
Если контент, отображаемый на вашей странице, основан на категориях и списках, объем данных очень мал, с сотнями элементов. Тип теперь отображается в приложении заказа на вынос, тогда все категории и данные приведены за один раз. Следовательно, обработка обрабатывается на стороне клиента, переключение и предварительный просмотр категории во всем процессе обрабатывается на странице, включая поиск. JS, выполненный на нашем клиенте, мобильный телефон или компьютер A не будет конкурировать с мобильным телефоном или компьютером B. Если вы переключаете тип каждый раз, когда вы переключаетесь на тип, вы будете чистить Ajax, и это та же самая группа веб -контейнеров, так что будет конкуренция. Чем чаще операция, тем больше конкуренция. Это тесно связано с фактическим сценарием.
Количество данных, возвращаемых запросом, не имеет ничего общего с производительностью. Тысячи тысяч данных находятся только на уровне десятков КБ.
Количество запросов, то есть количество взаимодействий с сервером, является прямой причиной, которая влияет на общую производительность.
Количество данных в запросе пропорционально размеру запрашиваемой таблицы. Он не будет ускорить запрос, возвращая 10 запросов за раз и 10 запросов за раз, замедляя запрос. Операция базы данных по сути является приложением для сбора, и ничего не создано.
Предпосылка настройки заключается в том, что данная сумма является наиболее подходящей, а не тем больше, чем вы даете, тем больше она. Память, которую JDK или Tomcat может потреблять на разных цифрах ОС.
Используйте nginx;
Используйте кэш при необходимости;
Выберите промежуточное программное обеспечение для сообщений или другое промежуточное программное обеспечение в зависимости от того, нужно ли вам;
Разделение баз данных или мастер-рабов и т. Д. Должно быть, что текущая база данных не может поддерживать объем трафика.
Синглтон - хороший способ.
Многопользовательский лезвий - это острый лезвие, и оно не различает конкретный язык.
Maven Management - хороший способ, но основным корпусом вашего проекта должен быть WebMVC, создавать веб -проект, встроить Maven в качестве компонента, вместо создания проекта Maven, а затем преобразовать его в веб -проект, если он не простоя.
Используя Spring, в настоящее время это лучшие леса.
Используйте JDBC как можно больше, если это возможно.
Не взаимодействуйте с сервером, когда вы можете выполнить вещи на клиенте. Ресурсы клиента огромны, а ресурсы сервера ограничены.
Попробуйте отправить меньше запросов. Коды, которые отправляют меньше запросов, являются хорошим кодом, если вы не являетесь мгновенным заявлением.
Инструменты в каждом коде - это инструменты, а API - это то, что вам нужно для понимания. Нет точного ответа, на который из них лучше, а какой из них не очень хорош.
Все является объектом, и это чисто для Java. Прокси - это объект, отражение является объектом, объект является объектом, а основной тип данных не является объектом.
Вещи, кроме основных типов, завершены через объекты. Независимо от того, насколько сложный этот процесс, они завершены через соответствующие методы объекта в сочетании с параметрами метода. Как сериализовать класс и десериализировать его, чтобы выразить его, это IO и передача файла, а затем загрузите его в JVM и постройте его в объект.
Причина, по которой RPC не называется в потоке. Это называется прокси. Прокси преобразует ваши потребности в параметры и отправляет их в качестве потоков данных. Сервер преобразует ваш поток запросов в объекты, а затем передает их обратно. Затем вы создаете объект и обрабатываете его через объект.
Nio-это хороший способ, Netty-хороший выбор, есть ли какой-нибудь многопоточный сокет, который превосходит Netty?
Zookeeper - отличный инструмент для ряда решений, таких как хорошая распределенная регистрация.
Все это все принципы и объекты, поэтому вам нужно использовать их, чтобы усердно читать их.
Вышеуказанное - личное понимание, и вы можете исправить его.