Вопросы с тегами [annotations]

1

голосов
1

ответ
648

Просмотры

Ядро asp.net выберите проверки с аннотацией данных не работает

Я потратил значительное количество времени, чтобы выяснить, но я не мог. Когда я отправляю мою модель без выбора опции - на самом деле выбор 0 - Выберите опцию -, проверка Обязательной не работает. Я также попытался удалить программно добавлен параметр по умолчанию из сервисного кода к коду вида, проверка не работала так, как хорошо. Если я удалил параметры по умолчанию полностью, то посмотреть двигатель автоматически выбирает первый вариант из списка и проверка никогда не будет сделана. Как я могу сделать проверки на стороне сервера сделано правильно? Это моя модель общественного класса AuditViewModel {общественного Guid Id {получить; задавать; } [Display (Name = "Тема")] [Требуется (ErrorMessage = "требуется копаться")] общественная строка Subject {получить; задавать; } Публичная строка AuditType {получить; задавать; } Публичная строка LocationCountry {получить; задавать; } Публичная строка LocationOffice {получить; задавать; } [Требуется (ErrorMessage = "требуется копаться")] [Display (Name = "AuditType")] общественность ИНТ AuditTypeId {получить; задавать; } Публичная строка CreatedOn {получить; задавать; } Публичная строка ModifiedOn {получить; задавать; } Публичная строка CreatedBy {получить; задавать; } [Display (Name = "Описание")] [Требуется (ErrorMessage = "требуется копаться")] общественная строка Описание {получить; задавать; } [Display (Name = "Страна")] [Требуется (ErrorMessage = "требуется копаться")] общественность ИНТ LocationCountryId {получить; задавать; } [Display (Name = "Офис")] [Требуется (ErrorMessage = "требуется копаться")] общественность ИНТ LocationOfficeId {получить; задавать; } [Display (Name = "Сезон")] общественная строка Season {получить; задавать; } Страны Публичный список {получить; задавать; } Публичный список AuditTypes {получить; задавать; } Публичный список Офисы {получить; задавать; } Список AuditList общественности {получить; задавать; }} Это сервис, получить данные выберите список и создает списки для связывания AuditViewModelService общественного класса: IAuditViewModelService {общественного Список GetAuditTypes () {список вара = нового список {нового SelectListItem {Text = _sharedLocalizer.GetLocalizedString ( «Выбор»), значение = "0", Selected = истина}}; Еогеасп (AuditType элемент в Enum.GetValues ​​(TypeOf (AuditType))) {list.Add (новый SelectListItem {Текст = _enumLocalizer.GetLocalizedString (item.ToString ()), значение = ((INT) элемент) .ToString ()}) ; } Возвращать список; } Список GetCountries общественного () {список вара = новый список {нового SelectListItem {Text = _sharedLocalizer.GetLocalizedString ( "Выбор"), Value = "0", Selected = истина}}; list.AddRange (_countryRepository.GetAll () ToList () ToSelectListItemList ( "Name")..); вернуться список; } Список GetOffices общественного () {список вара = новый список {нового SelectListItem {Text = _sharedLocalizer.GetLocalizedString ( "Выбор"), Value = "0", Selected = истина}}; list.AddRange (_officeRepository.GetAll () ToList () ToSelectListItemList ( "Name")..); вернуться список; }} Это выбрать входы часть вида Выбрать Выбрать Выбрать
ibubi
1

голосов
2

ответ
1.2k

Просмотры

Весна / кот не удается загрузить класс драйвера: com.mysql.jdbc.driver

В последнее время я пытался узнать загрузку пружины. У меня есть следующие соответствующие файлы: класс @Configuration: Я использую это, чтобы создать EntityManagerFactory класса @Entity: Я использую это для сопоставления экземпляра MySQL таблицы в @Repository crudrepository интерфейса: это встроено в весной в @Controller класса : используется для проверки автоматической проводки (когда я могу вводить, я буду двигаться в этом на уровне услуг) класс @SpringBootApplication: это работает мое приложение Н. application.properties подать pom.xml: используется для мавена и включает в себя MySQL банка класса сущностей отображенного в таблицу тузда и UserRepository класса (аннотированный с @Repository). Я пытаюсь привнести crudrepository класс через @Autowire аннотацию, но весной испытывает трудности с созданием источника данных для него, потому что он не может найти драйвер MySQL. Что меня смущает то, что у меня есть зависимость MySQL в мавена и я развертывания это на сервере GlassFish 4, но Spring пытается использовать Apache Tomcat для подключения к базе данных. Ниже мой трассировки стека, фрагменты кода, и MySQL-разъем: Соответствующий Трассировка стека (внутреннее исключение) Вызывается: org.springframework.beans.BeanInstantiationException: Не удалось создать экземпляр [org.apache.tomcat.jdbc.pool.DataSource]: Фабрика метод «Datasource» бросил исключение; вложенное исключение java.lang.IllegalStateException: Невозможно загрузить класс драйвера: com.mysql.jdbc.driver на org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate (SimpleInstantiationStrategy.java:189) ~ [весна-бобы-4.3. 13.RELEASE.jar: 4.3.13.RELEASE] на org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod (ConstructorResolver.java: 588) ~ [весна-бобы-4.3.13.RELEASE.jar: 4.3.13.RELEASE] ... 62 общие рамки опущена Вызванный: java.lang.IllegalStateException: Не удается загрузить класс драйвера: com.mysql.jdbc.driver обратите внимание, как это пытается использовать org.apache.tomcat создать источник данных, даже если я использую GlassFish сервер. Имеет ли это значение? Исходный код: первое отношение исключение возникает, когда пружина пытается впрыснуть источник данных компонента, который является параметром этого метода и не может создать его @Configuration @EnableAutoConfiguration общественного класс AppConfigUtil {@Autowired @Bean общественного EntityManagerFactory EntityManagerFactory (DataSource DataSource) {LocalContainerEntityManagerFactoryBean бобы = новый LocalContainerEntityManagerFactoryBean (); bean.setPackagesToScan ( "com.connor"); bean.setDataSource (DataSource); вернуть bean.getObject ();
Connor Butch
1

голосов
0

ответ
50

Просмотры

IMarker, связанный с блоком текста не удаляется

Я создал пользовательский маркер и аннотации в моем plugin.xml использование org.eclipse.core.resources.markers, org.eclipse.ui.editors.annotationTypes и org.eclipse.ui.editors.markerAnnotationSpecification. В коде я создаю аннотацию и маркер с SimpleMarkerAnnotation аннотаций = новый SimpleMarkerAnnotation (ANNOTATION_ID, маркер); Все, кажется, работает хорошо. Текст имеет аннотацию и появится маркер с соответствующей областью. Но когда я удалил блок текста, который аннотированный, аннотация исчезает, но маркер еще есть на левой стороне редактора. Стойкий устанавливаются на ложь в plugin.xml. Вкладка Проблемы в Eclipse, кажется, не показывать мои вставленные маркеры либо. Я создал метод, чтобы очистить аннотации и маркеры, основанные на ID, и это работает.
oh_hi_there
1

голосов
1

ответ
473

Просмотры

Spring AOP Pointcut для методов, вызываемых на поле с аннотациями

Я пишу аспект для изготовления, что возможно для зависимостей от внешних библиотек для возврата значения, которые правильно отформатированные для моего приложения. Имея это в виду, я создал аннотацию с именем @SafeReturns. Я телеграфировать этот класс из внешней библиотеки с помощью пружины и, кроме того, добавить свою аннотацию. @SafeReturns @Autowired общественного PermissionsClient клиента; Теперь я пытаюсь сделать аспект, но, к сожалению, я не могу поймать все вызовы всех методов на поле с аннотацией этой аннотацией. Я пробовал разные срезов в. например @Pointcut ( "исполнение (@ myApp.SafeReturns * * (..))") @Around ( "safeReturnsPointCut ()") общественного недействительными logAround (ProceedingJoinPoint joinPoint) бросает Throwable {} Ни один из них не помогает мне достичь поведения ловить все методы.
dvelopp
1

голосов
1

ответ
257

Просмотры

Feign Client с аннотациями

Я пытаюсь использовать симулировать клиент с аннотациями @FeignClient. И я хочу, чтобы вызвать метод feignClient вручную. Он отлично работает, когда я строю feignclient вручную с Feign.Builder. Но я немного потеряли в использовании @FeignClient аннотации. Спасибо, Khush
adroit
1

голосов
0

ответ
219

Просмотры

Entity Framework 6 фильтруется индекс

Я занимаюсь разработкой приложения с помощью Entity Framework 6, и я хочу использовать отфильтрованные индексы (индекс с где п). В Entity Framework есть индекс примечание, которое позволяет определить индекс на свойстве (столбец). Я определяю что-то вроде общественного класса SqlDefaultValueAttribute: Атрибут {общественное значение объекта {получить; задавать; } SqlDefaultValueAttribute (значение объекта) публичное {Значение = значение; }} И использовать его как этот общественный класс MyEntity {[SqlDefaultValue (123)] общественного ИНТ DefInt {получить; задавать; }}, То в OnModelCreating функции, я что-то вроде этого modelBuilder.Conventions.Add написать (новый AttributeToColumnAnnotationConvention (nameof (SqlDefaultValueAttribute), (р, атрибуты) => attributes.Single () Value).); и в конфигурационном файле что-то вроде этого общественного класса Конфигурация: DbMigrationsConfiguration {общественного конфигурации () {AutomaticMigrationsEnabled = TRUE; AutomaticMigrationDataLossAllowed = истина; SetSqlGenerator (SqlProviderServices.ProviderInvariantName, новый CustomSqlServerMigrationSqlGenerator ()); } Манипулировать SQL, генерируемый EF Для создания значения по умолчанию при создании столбца или создании таблицы, я переопределить Сформировать (CreateTableOperation createTableOperation) и Генерирование (AddColumnOperation addColumnOperation) В обеих функциях, я могу получить AnnotationValue от ColumnModel как это AnnotationValues ​​значения; если (column.Annotations.TryGetValue (nameof (SqlDefaultValueAttribute), из значения)) {column.DefaultValue = values.NewValue; } Таким образом, при инициализации набора стратегии MigrateDatabaseToLatestVersion, каждый раз, когда модель изменяется, мои изменения базы данных и значение по умолчанию установлены правильно. Теперь я хочу, то же самое для индекса. Как я могу определить пользовательскую аннотацию для индекса с AutoMigration набором? Существует Сформировать (CreateIndexOperation createIndexOperation) для перенастройки, но я не знаю, как установить AnonymousArguments для createIndexOperation (createIndexOperation.Columns список строк, а не ColumnModel). Существует какой-то способ, как ручная миграция и переопределить вверх и вниз функцию и переопределить CreateIndex, но я хочу сделать это делается автоматически без ручного переноса.
hamed
1

голосов
2

ответ
197

Просмотры

MapKit Направление к выбранной аннотации

Попытка получить направление к выбранной аннотации на карте от текущего местоположения пользователя, но не знает, как поймать выбранную аннотацию (когда пользователь выбора одного из них), и показать direction.Checked различных тема на стеке, но там не много свежая информация о том, как поймать выбранный аннотаций и показать направление для пользователя location.Please посоветуйте. импорт UIKit импорт MapKit импорт CoreLocation класс NavigationVC: UIViewController {@IBOutlet слабый вар MAPview: MKMapView! пусть менеджер = CLLocationManager () пусть запрос = MKLocalSearchRequest () переопределение FUNC viewDidLoad () {super.viewDidLoad () = manager.delegate собственной manager.desiredAccuracy = kCLLocationAccuracyBest manager.requestWhenInUseAuthorization () manager.startUpdatingLocation ()}} // MARK: КОНФИГУРАЦИИ нарощенных MAPview NavigationVC:
Ula
1

голосов
0

ответ
327

Просмотры

Spring Ботинки: Наличие пользовательских аннотаций на весеннем отдых классе контроллера вызывает ошибку в определении сопоставления обработчика

Я использую пользовательскую аннотацию под названием @Toggle поверх остальные класса контроллера в весенней загрузке, чтобы перехватить handlerType блокировать звонки отдыха. Ниже фрагмент кода: @RestController @Toggle (функция = "feature.foo") @RequestMapping ( "/ Foo") общественного класса FooController {@RequestMapping ( "") общественности Карта привет () {вернуться Collections.singletonMap ( "сообщение" , "привет Foo!"); }} Но я не в состоянии получить доступ к API, который терпит неудачу еще до диспетчера сервлета найти метод обработчика. 2018-02-17 18: 51: 31,520 ОТЛАДКА 73947 --- [NiO-8080-Exec-2] osweb.servlet.DispatcherServlet: DispatcherServlet с запросом обработки получить имя '' DispatcherServlet для [/ Foo] 2018-02-17 18 : 51: 31,521 ОТЛАДКА 73947 --- [NiO-8080-Exec-2] swsmmaRequestMappingHandlerMapping: a.RequestMappingHandlerMapping: Глядя метод обработчика для пути / ошибки 2018-02-17 18: 51: 31,529 ОТЛАДКА 73947 --- [NiO-8080-Exec-2] swsmmaRequestMappingHandlerMapping: Возвращаясь метод обработчика [общественного org.springframework.http.ResponseEntity org.springframework.boot.autoconfigure.web.BasicErrorController.error (javax.servlet.http.HttpServletRequest)] 2018-02-17 18: 51: 31,530 ОТЛАДКА 73947 --- [NiO-8080-Exec-2] osweb.servlet .DispatcherServlet: Last-Modified значение [/ ошибки] является: -1 Найдено ниже журналов, которые могут пролить больше света на эту проблему. 2018-02-17 20: 30: 24,172 DEBUG 94537 --- [главная] .isPathMatchingResourcePatternResolver Устранены картина место [* классам:. В / karthick / весна / ** / * класс] к ресурсам [файл [/ Users / karthick /feature-toggles/target/classes/in/karthick/spring/AppConfig.class], файл [/Users/karthick/feature-toggles/target/classes/in/karthick/spring/web/FooController.class] Однако, если я использовать один и тот же @Toggle аннотацию по методу внутри класса контроллера остальное, отображение обработчика находит правильный метод для вызова. @RequestMapping ( "/ Foo") @Toggle (функция = "feature.foo") общественности Карта привет () {вернуться Collections.singletonMap ( "сообщение", "привет Foo!"); } Как я могу убедиться, что карты весной загрузок на правильный метод обработчика даже если я использую пользовательскую аннотацию на верхней части контроллера отдыха.
Karthick Selvaraj
1

голосов
0

ответ
62

Просмотры

Как добавить автогенерируемые файлы к заключительному банку модуля «Java-библиотека»?

У меня есть модуль в ведении Gradle проекта. Некоторые классы создаются путем обработки аннотаций. Но после того, как все эти файлы автоматически сгенерированных не приходит к окончательному банку. Как добавить? build.gradle модуля: применять плагин: 'ява-библиотека' применить плагин: 'Котлин' зависимости {реализации дерева файлов (в том число: [ '* .jar'], реж: 'Libs') реализация libraries.kotlinStdLib реализации libraries.rxjava компиляции проекта ( ': генератор: аннотация') проект kapt ( ": генератор: процессор") проект compileOnly ( ": генератор: процессор")} {sourceSets main.java.srcDirs + = 'SRC / Главные / Kotlin' Main.java .srcDirs + = "$ {buildDir.absolutePath} / TMP / kapt / главная / kotlinGenerated /" debug.java.srcDirs + = 'SRC / отлаживать / Котлин' debug.java. srcDirs + = "$ {buildDir.absolutePath} / TMP / kapt / отлаживать / kotlinGenerated /" release.java.srcDirs + = 'SRC / выпуск / Котлин' test.java.srcDirs + = 'SRC / тест / Котлин' androidTest. java.srcDirs + = 'SRC / androidTest / Kotlin'} kapt {generateStubs = TRUE} {buildscript Хранилище {mavenCentral ()} {зависимостей libraries.kotlinPlugin классов libraries.kotlinStdLib классов}} Хранилища {mavenCentral ()} {compileKotlin kotlinOptions {jvmTarget = "1,8"}} {compileTestKotlin kotlinOptions {jvmTarget = "1.8"}} файлы Generted видны внутри этого пакета, испытанного JUnit и т.д. Кроме того, эти файлы видимые Android Studio. $ Найти. -типа F | Grep Fsm *. /build/classes/kotlin/main/com/example/FsmPaymentInteractorImpl.class ./build/classes/kotlin/main/com/example/FsmSettingsInteractorImpl.class ./build/tmp/kapt/main/kotlinGenerated/FsmPaymentInteractorImpl.kt/com /example/FsmPaymentInteractorImpl.kt ./build/tmp/kapt/main/kotlinGenerated/FsmSettingsInteractorImpl.kt/com/example/FsmSettingsInteractorImpl.kt $ Там нет файлов в банке: $ найти. -name domain.jar | xargs деготь тс | Grep Fsm $ Идеи? Обновление: я нашел неожиданное поведение: если я запускаю задачу банки дважды нужные файлы при добавлении к банку. Зачем?? $ ./Gradlew -q: домен: баночка; находить . -name FSM * -типа е ./domain/build/classes/kotlin/main/com/example/FsmPaymentInteractorImpl.class ./domain/build/classes/kotlin/main/com/example/FsmSettingsInteractorImpl.class ./domain/build / TMP / kapt / Главный / kotlinGenerated / FsmPaymentInteractorImpl. кт / ком / пример / FsmPaymentInteractorImpl.kt ./domain/build/tmp/kapt/main/kotlinGenerated/FsmSettingsInteractorImpl.kt/com/example/FsmSettingsInteractorImpl.kt $ ./gradlew -q: домен: баночка; находить . -name FSM * -типа е ./domain/build/classes/kotlin/main/com/example/FsmPaymentInteractorImpl.class ./domain/build/classes/kotlin/main/com/example/FsmSettingsInteractorImpl.class ./domain/build /tmp/kapt/main/classFileStubs/com/example/FsmPaymentInteractorImpl.class ./domain/build/tmp/kapt/main/classFileStubs/com/example/FsmSettingsInteractorImpl.class ./domain/build/tmp/kapt/main/kotlinGenerated /FsmPaymentInteractorImpl.kt/com/example/FsmPaymentInteractorImpl.kt ./domain/build/tmp/kapt/main/kotlinGenerated/FsmSettingsInteractorImpl.kt/com/example/FsmSettingsInteractorImpl.kt $ находка. -name домен. баночка | xargs деготь тс | Grep Fs ком / пример / FsmPaymentInteractorImpl.class ком / пример / FsmSettingsInteractorImpl.class $
tse
1

голосов
1

ответ
280

Просмотры

Как назвать конкретные советы от точки соединения в Spring AOP?

Я пытаюсь создать реализацию Spring AOP, в котором везде, где я буду размещать определенную аннотацию, соответствующие советы (Before, After, Around и т.д.) будут выполняться. Ниже подгонянный аннотаций: импорт java.lang.annotation.Documented; импорт java.lang.annotation.Inherited; импорт java.lang.annotation.Retention; импорт java.lang.annotation.Target; импорт java.lang.annotation.ElementType; импорт java.lang.annotation.RetentionPolicy; @Documented @Target (ElementType.METHOD) @Inherited @Retention (RetentionPolicy.RUNTIME) публичное @interface LogExecutionTime {} Соответствующий аспект, как: импорт org.aspectj.lang.JoinPoint; импорт org.aspectj.lang.ProceedingJoinPoint; импорт org.aspectj.lang.annotation.After; импорт org.aspectj.lang.annotation.Around; импорт org.aspectj.lang.annotation.Aspect; импорт org.aspectj.lang.annotation.Before; импорт org.springframework.stereotype.Component; @Aspect @Component общественного класса ExampleAspect {@Before ( "@ аннотацию (LogExecutionTime)") общественного недействительными logExecutionTimeBefore (JoinPoint joinPoint) бросает Throwable {долго начинать = System.currentTimeMillis (); длинное executionTime = System.currentTimeMillis () - старт; System.out.println (joinPoint.getSignature () + "выполненный в" + executionTime + "мс"); } @After ( "@ аннотации (LogExecutionTime)") общественного недействительный logExecutionTimeAfter (JoinPoint joinPoint) бросает Throwable {длинный начать = System.currentTimeMillis (); длинное executionTime = System.currentTimeMillis () - старт; System.out.println (joinPoint.getSignature () + "выполненный в" + executionTime + "мс" ); }} Следующие места я ткацкие советы: импорт sample.annotation.LogExecutionTime; общественный класс Test {@LogExecutionTime общественные недействительный служить () бросает InterruptedException {Thread.sleep (2000); } государственной статической силы основных (String []) {арг Испытание Т = новый тест (); попробуйте {t.serve (); } Задвижка (InterruptedException е) {// TODO автоматической генерации улов блок e.printStackTrace (); }}} Теперь мое требование, если я могу назвать какие-либо конкретные советы от точки соединения самого как @LogExecutionTime (Запускать только перед консультациями) или @LogExecutionTime (Запускать только после консультации). общественный класс Test {@LogExecutionTime общественные недействительный служить () бросает InterruptedException {Thread.sleep (2000); } государственной статической силы основных (String []) {арг Испытание Т = новый тест (); попробуйте {t.serve (); } Задвижка (InterruptedException е) {// TODO автоматической генерации улов блок e.printStackTrace (); }}} Теперь мое требование, если я могу назвать какие-либо конкретные советы от точки соединения самого как @LogExecutionTime (Запускать только перед консультациями) или @LogExecutionTime (Запускать только после консультации). общественный класс Test {@LogExecutionTime общественные недействительный служить () бросает InterruptedException {Thread.sleep (2000); } государственной статической силы основных (String []) {арг Испытание Т = новый тест (); попробуйте {t.serve (); } Задвижка (InterruptedException е) {// TODO автоматической генерации улов блок e.printStackTrace (); }}} Теперь мое требование, если я могу назвать какие-либо конкретные советы от точки соединения самого как @LogExecutionTime (Запускать только перед консультациями) или @LogExecutionTime (Запускать только после консультации).
suchit
1

голосов
0

ответ
34

Просмотры

Аннотации влияют как джексон пишет типы каждого объекта и примитивно

Я думаю, что аннотации могут помешать выходу JSon. Выходные печатает объекты с полями, как целостное, строка, ValueType и обугливается, что это не в классе. Как избежать этого и получить простой JSON? Я использую ДЖЕКСОН-DataBind 2.8.9 с ObjectMapper. BaseEntity.java @MappedSuperclass @XmlRootElement @XmlAccessorType (XmlAccessType.FIELD) общественный абстрактный класс BaseEntity реализует Serializable {частные статический окончательный длинный serialVersionUID = 5234608700757438450L; @Id @GeneratedValue (стратегия = GenerationType.IDENTITY), защищенный целочисленный идентификатор; @Version @XmlTransient защищен Integer версии; ...} Type.java @Entity @Table (имя = "тип") @XmlRootElement тип общественного класса распространяется BaseEntity {частный статический окончательный длинный serialVersionUID = 1L; Статическое конечная строка PREFIX = «work.entity. WorkType. "; Общественности статического конечная строка FindAll = PREFIX + "FindAll"; @Basic (необязательно = ложь) @NotNull @Size (мин = 1, макс = 45) @Column (имя = "название", обнуляемая = ложь, длина = 45) частное имя Строка; @Size (макс = 45) @column (имя = "описание", длина = 45) частное описание строки; ...} Код ... Тип Тип = новый тип ( "Work); type.setId (1); type.setDescription ( "Длительность месяцев"); ObjectMapper картостроитель = новый ObjectMapper (); mapper.writeValueAsString (тип) ... Json выводит код, прежде чем производит { "ID": { "Интеграл": правда, "ValueType": "НОМЕР"}, "имя": { "строка": "Работа", " ValueType»: "STRING", "символы": "Работа" }, "Описание": { "строка": "Продолжительность месяцы", "ValueType": "STRING", "си": "Продолжительность месяцы"}} Json, что я хочу получить ¿? { "ID": 1, "имя": "Работа", "Описание": "Длительность месяцев",}
Joe
1

голосов
0

ответ
208

Просмотры

Java Reflections - метод Получение с определенным типом аннотаций с отражениями

Я пытаюсь получить метод с аннотацией @Before из MyTestClass. Класс в пакете с именем ru.package. Он отлично работает, когда у меня есть только один класс с @Before. Но если я создаю новые классы и новые классы во внутренних пакетах с этой аннотацией и буду пытаться найти @Before аннотаций только MyTestClass этот код дает мне все методы из всех классов с этой аннотацией, но мне нужно только 1. Где я неправильно? Благодарю. Размышления отражения = новые отражения (новый ConfigurationBuilder () setUrls (ClasspathHelper.forClass (MyTestClass.class)) setScanners (новый MethodAnnotationsScanner ())..); Установить методы = reflections.getMethodsAnnotatedWith (Before.class); @Before аннотацию @Retention (RetentionPolicy.RUNTIME) @Target (ElementType.METHOD) публичное @interface До {} MyTestClass. класс общественного класса MyTestClass {частный Список StringList = новый ArrayList (); @Before общественной недействительная нАлАдкИ () {StringList = новый ArrayList (); для (INT I = 0; я <50; я ++) {stringList.add ( "строку" + I); }} // @ Test и т.д.}
nJ93
1

голосов
0

ответ
60

Просмотры

PHP: Аннотация к multidismentional массива

Есть ли способ довольно, чтобы получить аннотации из класса / методы в многомерном массиве? Например, у меня есть аннотацию как: / ** * @First * @Second ({ 'а'}) * @Third (подзначение: {а: 5}) * / И я хочу, чтобы получить STH, как: [ "First" = > нулевой, "Второй" => [ 'а'], "Третий" => [ 'подзначение' => [5]]];
1

голосов
1

ответ
44

Просмотры

уничтожение @bean созданного исполнителя

У меня есть следующий annotationconfig в Spring 4 @Bean (имя = "replicationThreadExecutor") общественный палач replicationThreadExecutor () {ThreadPoolTaskExecutor исполнитель = новый ThreadPoolTaskExecutor (); executor.setCorePoolSize (threadPoolCoreSize); executor.setMaxPoolSize (threadPoolCoreSize); executor.initialize (); вернуть исполнитель; } Что меня беспокоит это разрушение Исполнителя. Будет ли весна признать, что динамический тип Исполнителю является экземпляром DisposableBean и уничтожить его, или мне нужно изменить тип возвращаемого в ThreadPoolTaskExecutor для того, чтобы работать?
rd31415
1

голосов
3

ответ
253

Просмотры

Добавление проверки в RequestMapping аннотации

Я использую загрузку весной и я хочу добавить API контроля версий поддержки для некоторых RequestMapping (URL путь должен начинаться с / х [1-9] + /). Я имею в виду создания аннотаций: MyRequestMapping, что дополнительно поддерживает путь апите версии. Таким образом, любой пользователь MyRequestMapping будет автоматически апите версию, возложенную на него. Так как я не могу продлить RequestMapping аннотации (расширение аннотации не допускается в Java), я не уверен, как идти вперед с этим подходом .. Любой намек / идея будет здорово! Короче говоря: Как я поддерживаю апите версии для «пути» в RequestMapping? Спасибо..
Kumar Gaurav
1

голосов
1

ответ
111

Просмотры

Почему после Советов становятся печать до того вызова метода

MY Spring AOP программа не работает, как ожидается. Я создал простой АОП программу аннотаций ниже, но выход не то, что я думал. Программа: beans.xml Student.java пакет com.surajhome.practice.spring; класс Student общественного {общественного Строка GetName () {имя возврата; } Общественной недействительная SetName (имя String) {this.name = имя; } Общественного ИНТ СеЬАд () {возвращение возраст; } Общественного недействительный ЗеЬАд (интермедиат возраст) {this.age = возраст; } Имя строки; ИНТ возраст; } Logging.Java пакет com.surajhome.practice.spring; импорт org.aspectj.lang.annotation.After; импорт org.aspectj.lang.annotation.Aspect; импорт org.aspectj.lang.annotation.Before; импорт org.aspectj.lang.annotation.Pointcut; @Aspect общественного класса Logging {@Pointcut ( "исполнение (* com.surajhome.practice. общественного класса MainApp {государственной статической силы основных (String [] арг) {ApplicationContext = новый контекст приложения ClassPathXmlApplicationContext ( "beans.xml"); Студент станд = (Студент) appContext.getBean ( "студент"); System.out.println (std.getName ()); System.out.println (std.getAge ()); }} Выход: Перед Совет призвал После консультаций под названием Сурадж Kudale Перед консультаций называется После консультации под названием 27 Должно быть: Перед Advice называется Сурадж Kudale После консультаций называется Перед Совет призвал 27 После того, как Советы называется
1

голосов
0

ответ
237

Просмотры

Переменные аннотации в уплощении тензора Факела

Я пытаюсь следовать принятому ответу на этот вопрос. Но я не могу использовать х: вид (х: nElement ()) в PyCharm; по-видимому, х является незаконной мишенью для переменной аннотации. Я не знаком с такими аннотациями, поэтому я пытался понять их из принятого ответа на этот вопрос. Делая мой лучший дал обратную связь PyCharm, я уже остановился на: а, Ь = х, х вид: а = а nElement: Ь = Ь возвращающий (Ь ()) PyCharm говорит мне локальные переменные просмотра, nElement не используются , Является ли это правильный способ сделать это? Есть ли способ лучше? Это не было моей первой попытки, но позвольте мне объяснить логику позади него. Я объявил, Ъ на первой линии, потому что если я пытаюсь вид: а = х nElement: Ь = х возвращают (Ь ()), то а, б каждый считаются неразрешенные ссылки, как на линиях объявляя их и по возвращении линия.
J.G.
1

голосов
0

ответ
20

Просмотры

как определить «ответить» аннотацию в IText

Я использую IText извлечь аннотации в PDF, но я не в состоянии дифференцировать ответил аннотаций .... В настоящее время я использую PdfName.IRT который возвращает строку .. но я не знаю, как получить аннотацию к которому это ответил ... пожалуйста, найти код ниже: государственной статической силы основных (String [] арг) бросает IOException {PdfReader читатель = новый PdfReader ( "C: \\ PDF \\ test.pdf"); для (INT I = 1; я
atul bharadwaj
1

голосов
1

ответ
45

Просмотры

How to add a sortable column from the admin log in Django

В админке Django Мне нужно отобразить, когда объект последнего изменения другого пользователя. Поэтому я хочу использовать встроенный в журнал администратора Django. Я пришел с этим решением: класс MyModel (models.Model): ... @property Защиты admin_last_modified (сам): от django.contrib.admin.models импорта LogEntry из django.contrib.contenttypes.models импорта ContentType попробовать: logentry = формат возврата '' возвращение '{} по {}': LogEntry.objects.filter (object_id = self.pk, content_type_id = ContentType.objects.get_for_model (само .__ class__)) .order_by ( 'action_time') [0], за исключением. (logentry.action_time, logentry.user) и класс администратора: @ admin.register (MyModel) класс MyAdmin (admin.ModelAdmin): list_display = (..., ' admin_last_modified») Недостаток, который представляет собой шоу-стоппер для меня является то, что столбец не сортируется. Для этого, от того, что я собрал, я должен был бы переформулировать собственность как своего рода аннотацию. Но я пытался и не пришел с идеей, как сделать это: класс MyAdmin (admin.ModelAdmin): Защита get_queryset (Я):. QuerySet = супер () get_queryset (запрос) QuerySet = queryset.annotate (admin_last_modified = # ???) возвращение QuerySet Я теперь ищу то, что заменить знаки вопроса с. Как я могу написать аннотацию, который извлекает одну строку информации от другого в основном, не связанной таблицы? d нужно заново сформулировать свойство как своего рода аннотацию. Но я пытался и не пришел с идеей, как сделать это: класс MyAdmin (admin.ModelAdmin): Защита get_queryset (Я):. QuerySet = супер () get_queryset (запрос) QuerySet = queryset.annotate (admin_last_modified = # ???) возвращение QuerySet Я теперь ищу то, что заменить знаки вопроса с. Как я могу написать аннотацию, который извлекает одну строку информации от другого в основном, не связанной таблицы? d нужно заново сформулировать свойство как своего рода аннотацию. Но я пытался и не пришел с идеей, как сделать это: класс MyAdmin (admin.ModelAdmin): Защита get_queryset (Я):. QuerySet = супер () get_queryset (запрос) QuerySet = queryset.annotate (admin_last_modified = # ???) возвращение QuerySet Я теперь ищу то, что заменить знаки вопроса с. Как я могу написать аннотацию, который извлекает одну строку информации от другого в основном, не связанной таблицы? аннотирования (admin_last_modified = # ???) возвращение QuerySet Я сейчас в поисках того, что заменить знаки вопроса с. Как я могу написать аннотацию, который извлекает одну строку информации от другого в основном, не связанной таблицы? аннотирования (admin_last_modified = # ???) возвращение QuerySet Я сейчас в поисках того, что заменить знаки вопроса с. Как я могу написать аннотацию, который извлекает одну строку информации от другого в основном, не связанной таблицы?
Boldewyn
1

голосов
1

ответ
336

Просмотры

Использование Java аннотаций, чтобы сгенерировать код в методе

Я бы аннотирования метод Java, чтобы запустить код до того, как тело метода выполняется, и перед тем способом возвращается к абоненту. Я читал о генерации кода во время компиляции с помощью Java аннотаций. Сигнатура метода я аннотирования как в следующем примере. общественный процесс вывода (Input arg0) {// ... // тело, которое создает выходной объект как обработка результат arg0 // ... возвращают результаты; } Я хотел бы аннотировать выше метод для того, чтобы войти входной аргумент до того, как тело метода выполняется и регистрировать выходные данные до того, как метод возвращает вызывающий абонент. Я выдвинул гипотезу аннотации вроде следующей. @Log (вход = "arg0", inputDest = "log1.txt", outputDest = "log2.txt"), приведенные выше аннотации должны генерировать (во время компиляции) некоторый код, как в следующем. Процесс общественного Выход (вход arg0) {SampleLogger.log (arg0, "log1.txt"); //
enzom83
1

голосов
1

ответ
77

Просмотры

Ошибка Spring Rest 404 при доступе к отображенный URL

Это мои классы: AppConfig @Configuration @EnableWebMvc @ComponentScan (basePackages = "jp.co.sample.ai") общественный класс общественного класс AppConfig {} AppInitializer AppInitializer расширяет AbstractAnnotationConfigDispatcherServletInitializer {@Override защищенного класса [] getRootConfigClasses () {вернуть новый класс [] {} AppConfig.class; } @Override защищенный класс [] getServletConfigClasses () {возвращение нуль; } @Override защищены String [] getServletMappings () {вернуть новый String [] { "/"}; }} UserController @RestController общественного класса UserController {@Autowired частное UserRepository userRepo; @GetMapping ( "/ пользователям") getUserList публичного списка () {вернуться userRepo.findAll (); }} UserRepository @Component общественного класса UserRepository {частный статический список USERLIST; {UserList = новый ArrayList (); userList.add (новый пользователь ( "tk001", "десять", "род")); userList.add (новый пользователь ( "tk002", "Ten2", "kin2")); userList.add (новый пользователь ( "tk003", "Ten3", "kin3")); } Общественного Список FindAll () {вернуться USERLIST; } Моей структуры проекта, как этот проект структуру я запустить этот проект через Tomcat, но я получаю ошибку HTTP 404: // Localhost: 8080 / пользователей HTTP: // локальный: 8080 "Ten3", "kin3")); } Общественного Список FindAll () {вернуться USERLIST; } Моей структуры проекта, как этот проект структуру я запустить этот проект через Tomcat, но я получаю ошибку HTTP 404: // Localhost: 8080 / пользователей HTTP: // локальный: 8080 "Ten3", "kin3")); } Общественного Список FindAll () {вернуться USERLIST; } Моей структуры проекта, как этот проект структуру я запустить этот проект через Tomcat, но я получаю ошибку HTTP 404: // Localhost: 8080 / пользователей HTTP: // локальный: 8080
TeeKei
1

голосов
1

ответ
32

Просмотры

Как показать больше annoations на mkmapview при масштабировании и показать меньше на увеличении вне дома?

У меня есть карта с несколькими аннотациями, как 40, так сначала я хочу показать только 6 аннотации на карте с уровнем масштабирования по умолчанию, который будет охватывать все аннотации. Эти 6 аннотаций бы с индексом 0, 7, 15, 23, 31, 39 соответственно. После того, как я начала масштабирования Я хочу показать больше аннотаций на основе динамического коэффициента масштабирования, как 0, 4, 7, 11, 15, 19, 23, 27, 31, 35, 39 и так далее.
Manoj4iPhone
1

голосов
1

ответ
94

Просмотры

Как отфильтровать свойства, используя префикс BridgePropertyPlaceholderConfigurer в Camel

Есть ли способ для фильтрации приставки свойств при чтении значений с помощью @value аннотации в Camel? Я использую BridgePropertyPlaceholderConfigurer указать файлы свойств, и я попытался установить @ConfigurationProperties (префикс = «SlowEndpoint») на свойства компонента, но это, кажется, игнорировать его.
Brown
1

голосов
2

ответ
113

Просмотры

Spring MVC суб отображение @RequestMaping бросает 404

Будьте щедры и объясняют, почему я с этой глупой ПРОБЛЕМОЙ Все отлично работает, без отображения! но у меня есть простой вопрос. Я поставил родительское отображение @ «/ привет» и суб-карта в методе @ «/ ShowForm», грузоотправитель установлен в положении «/», но я получаю 404 (см код рис. 3). Я не мог найти ответ на вопрос, похожий на мой. Смотрите ниже код и бирок для моей установки контроллера @Controller @RequestMapping рис.1 ( «/ привет») общественного класса HelloWorldController {@RequestMapping ( «/») ShowForm общественности Строка ShowForm () {возвращения «привет-мир»; } Web.xml fig.2 yktech org.springframework.web.servlet.DispatcherServlet yktech / Tomcat Рис.3 ошибки Тип Отчет о состоянии сообщений / yktech / привет / WEB-INF / вид / привет-мир. Описание JSP Сервер происхождения не найти текущее представление для целевого ресурса или не желает раскрывать, что она существует. EDIT: ЗАБЫЛ боба фиг. 4 EDIT: древовидная структура (MESSY ЗНАЮ) введите описание изображения здесь редактировать 4, index.jsp Добро пожаловать на мою домашнюю страницу Показать форму форму Показать СТУДЕНТ редактировать 5 pom.xml 4.0.0 com.yktech yktech войны 1,0 yktech Http: // Maven. apache.org JUnit JUnit 3.8.1 испытания org.springframework весна-webmvc 4.3.17.RELEASE Обще-каротаж Общх-каротаж 1,2 yktech EDIT 6 SERVER LOG, КАРТИРОВАНИЕ URLS INFO: Загрузка определение XML-бобы из ServletContext ресурса [/ WEB-INF /yktech-servlet.xml] 30 июля 2018 10:19:30 PM org.springframework.web.servlet.mvc.annotation.
Yanis K
1

голосов
0

ответ
26

Просмотры

Spring Security - вызов защищенного метода из локального

на уровне услуг Spring Security У меня есть метод CreateUser () с аннотацией @PreAuthorize ( "hasAuthority ( 'ROLE_ADMIN')"). Это уже работает. Но при установке этого приложения, то первый пользователь должен быть создан. В настоящее время я пытаюсь создать пользователя по умолчанию при запуске, когда пользовательская база данных пуста. В дальнейшем это должно быть сделано через веб-интерфейс. Но то, что это лучший подход к чему-то вроде этого? В настоящее время я не могу создать первый пользователь, потому что я не админ. Я мог бы обеспечить метод в вебе-контроллере, но обеспечение уровня услуг является лучшим подходом я думаю. Мне нужно что-то вроде @PreAuthorize Do ( «hasAuthority („ROLE_ADMIN“)») или база данных EMPTY или можно назвать местный метод с властью? Я бы взять на себя эту проблему уже решена в 100 раз :-) С наилучшими пожеланиями, Jochen
Jochen
1

голосов
0

ответ
35

Просмотры

JAX-RS REST: запрос маршрута HTTP на основе параметра MediaType

У меня есть починки MEDIATYPE + параметр, и я пытался запрос HTTP маршрута на основе параметра. @Path ( "/ пиво") @GET @Path ( "/ все") @Consumes ( "приложение / vnd.foo + JSON; тип = бу / Sth1") @Produces ( "приложение / vnd.foo + JSON; тип = Koo / sth2" ) Ответ getBeer (); @GET @Path ( "{ID}") @Consumes ( "приложение / vnd.foo + JSON; тип = Ву / sth3") @Produces ( "приложение / vnd.foo + JSON; тип = хуу / sth4") Ответ getBeer2 (); Я прочитал много сообщений о версионности и как использовать пользовательские MEDIATYPE: + JSON является узнаваемым MediaType, как JSON, так что кто-либо принимает заголовок следовать этот формат будет рассматриваться как JSON, когда я отправил запрос GET HTTP: / локальный: 8000 / пиво / 11 (следует перейти ко второму методу GET) с --header 'Accept: приложение / vnd.foo + JSON; тип = "Koo / sth2"' (Неправильный тип) Он дал мне правильный ответ (в формате JSON) с 200, и Content-Type является хуу / sth4. В идеале он должен вернуть 406 не приемлемо, но соответствует типу реакции, необходимые + формат JSON в любом случае, так что вернуться в успех. Есть в любом случае я могу из значения типа обязательно матч? После поиска вокруг меня есть несколько идей, но не уверен, если это будет работать: 1.Create по умолчанию MEDIATYPE + реализовать MessageBodyWriter / чтение (на основе JacksonJsonProvider) Но таким образом я должен реализовать MessageBodyWriter / чтения для каждого конкретного значения типа. Защиту не хотят, чтобы сделать это. 2.Create новой аннотации, если данный типа матч это аннотации, запрос маршрута к этому методу, например @Request ( "Woo / sth3") @Response ( "ого-го / sth4") Response getBeer2 (); в тыс случае, я должен переписать RequestDispatcher / ResponseDispatcher или что-то? Оба решения выглядят некрасиво, хотя, пожалуйста, поделитесь, если у вас есть хорошая идея по этому поводу. Udpate: Я редактировать мой вопрос более, специфические, поэтому тип может быть что угодно, в соответствии с форматом «*** / Sth1», например, «boo.foo/sth1» и «keepoo / sth2».
1

голосов
0

ответ
54

Просмотры

Hibernate использует аннотацию @Embeddable с аннотацией @DiscriminatorColumn

У меня есть таблица SQL, как показано ниже. ID type_communicationChannel id_phone id_cellphone + ---- + -------------------------------- + ------- ------ + ---------------- + | 1 | "PHONE" | 1 | NULL | | 2 | "CELLPHONE" | NULL | 1 | + ---- + -------------------------------- + ----------- - + ---------------- + Для реализации, у меня есть два решения для объекта моделирования Java: Первое решение использует аннотации @AttributesOverrides: @Entity общественного класса Parent {частного @Id @ GeneratedValue INT идентификатор; @Embedded @AttributeOverrides ({@AttributeOverride (имя = "идентификатор", столбец = @ Column (имя = "id_phone")}) частный CommunicationChannel телефон; @Embedded @AttributeOverrides ({@AttributeOverride (имя =» } Что является наиболее подходящим решением? Спасибо за Ваш ответ.
buck
1

голосов
2

ответ
56

Просмотры

Проблема с математическим выражением аннотацией в ggplot2

Я хочу сделать следующую в этой заметку ggplot графа Я triying этого ggplot (данные = data.frame (х = с (0, 70)), Айзами (х)) + stat_function (прикольный = dchisq, арга = список (Д.Ф. = 30)) + аннотировать ( "текст", х = с (7), у = с (0.019), метка = «Р (16,791
Nicolas Molano
1

голосов
2

ответ
36

Просмотры

Is there a preset 'index' or something similar that allows me to refer to specific annotations that a user created? Swift 4

У меня есть приложение, где пользователь может выполнять поиск местоположений, нажмите на строку в виде таблицы, и аннотации будут размещены на метках. У меня есть кнопка «meetUpButton», что позволяет им ставить несколько аннотаций, а не то, что мой код делает по умолчанию, который удалить аннотацию, если новый результат поиска щелкнуло. Есть ли способ, чтобы обратиться к конкретной аннотации, что мой пользователь создал, даже если они сделаны мультипликатор? Например, сказать, что я хочу, чтобы добавить широту двух аннотаций, которые создали мой пользователь ... Если я пусть аннотация = MKPointAnnotation () annotation.coordinate.latitude Есть ли способ сослаться на что-то вроде первой аннотации с индексом 0 и следующий, что мой пользователь выбрал с 1 или другим способом? Вот некоторые из моего кода, который мог бы сделать это яснее. расширение ViewController:
derek
1

голосов
0

ответ
20

Просмотры

Вводить имя одного бина в конструктор другого боба

общественного class1 {@Bean (имя = "S1") публичное Class1 s1 {} @Bean (имя = "S2") публичный класс 2 s2 {} @Bean (имя = "s3") публичное Class3 s3 (@name ( "S1" ), @name ( "s2")) {} @Bean (имя = "s4") публичное Class4 s4 {возвратить новый SomeFunction (@name ( "s3"))}} Предположим, что мы имеем, как и выше н. Где четко Bean s3 зависит от s1 и s2. А теперь я хотел бы передать выход s3 в SomeFunction другого s4 Bean, что я должен делать? Кажется, @name ( «s3») здесь не работают, и, может быть, я должен использовать другие аннотации? Спасибо
LookIntoEast
1

голосов
1

ответ
40

Просмотры

Есть ли способ, чтобы использовать Eclipse, внешние аннотации на общих параметрах методов класса?

Я хотел бы, чтобы комментировать HasComponents класс Vaadin, которая простирается Iterable. Я могу комментировать итератор () - метод, как это: класс ком / Vaadin / Ui / HasComponents итератор () Ljava / Util / итератор; () L1java / Util / итератора; так что я могу итерацию с классическим для цикла для (итератора это = content.iterator (); it.hasNext ();) {Компонент C = it.next (); doSmoething (с); } Но когда я попробовать Еогеасп-цикл, как для (компонент С: содержание) {йоЗотеЬЫпд (с); } Я получаю предупреждение от Eclipse: Null типобезопасности (аннотации типа): Выражение типа потребностей «компонента» бесконтрольно преобразования, чтобы соответствовать «@NonNull компонент» предположительно потому, что она должна быть HasComponents распространяется компонент, Iterable Есть ли способ, чтобы добавить это аннотации с помощью внешних аннотаций или есть другой способ?
hd42
1

голосов
3

ответ
539

Просмотры

как проверить дату в формате ММ / дд / гггг действует месяц, дата, год весной загрузки

Мне нужно, чтобы проверить данную дату имеет действительный месяц, дату и год. Bascially, формат даты будет «ММ / дд / гггг». Но дата вступления, как «13/40/2018», то мне нужно, чтобы бросить сообщение об ошибке, как «недействительный даты начала». Есть ли аннотации доступны весна, чтобы получить это сделать ..? @NotNull (сообщение = ExceptionConstants.INVALID_START_DATE) @JsonFormat (форма = JsonFormat.Shape.STRING, шаблон = "ММ / дд / гггг") частное Дата StartDate;
Saravanan
1

голосов
0

ответ
32

Просмотры

Как динамически определить пакет @RunWith с JUnit4

Благодаря моему предыдущему вопросу, моя основа теперь бегун, который будет рассчитывать @Category теги, так что я могу получить четкую картину покрытия кода из моего тестирования. Мой следующий шаг заключается в абстрактный бегун, как одна структуры обрабатывает несколько приложений, разделенных на пакеты. + --- + --- главный тест + --- + --- Java COM + --- + --- компания приложение | + --- app1 | | + --- общий | | + --- страница | | + --- тест | + --- app2 | + --- общий | + --- страница | + --- тест + --- + --- основные категории структура использует PageObject модель так страница будет содержать детали каждой страницы, общие будет для общих функций по всему приложению, и тест проводит фактические тесты с именем * Test.class В настоящее время бегун находится в том же пакете тестов для каждого приложения. Но каждый из них точно такой же код для переменной, содержащей путь пакетов, за исключением, и @SuiteClasses () листинг каждого тестового класса. @RunWith (Suite.class) @ Suite.SuiteClasses ({FirstTest.class, SecondTest.class, ThirdTest.class, _CleanUpTest.class}) общественный класс _CategoriesCount {частные статические MAIN_TEST_PACKAGES окончательного String = «com.company.app.app1.test «; частная статическая конечная строка MAIN_CATEGORY_PATH = "com.company.core.categories."; ...} То, что я надеюсь на это, чтобы создать один бегун внутри основного пакета и основанную либо в командной строке, или переменной в пределах pom.xml, указать папку приложения пакета и бегун автоматически настраивает себя. Это будет иметь несколько преимуществ: Динамически читать в * Test.class файлы так, если новый набор тестов создается, тестер не нужно помнить, чтобы добавить его в файл бегун Существует только один бегун; только одно место, чтобы исправить / улучшить вместо десятков К сожалению, все, что я видел призывы к аннотациям к статическим. Я считаю, что это происходит из-за сроки, когда бегунок считывается до выполнения кода. Так что я вижу, если есть какой-нибудь способ, которым я не нахожу, чтобы добавить -DtestApp = app2 в командной строке, и что в свою очередь может заполнить бегуна. Я уже использую безошибочный плагин для установки других переменных в коде, поэтому я надеюсь, что я могу сделать то же самое с аннотациями. Динамически прочитать в * Test.class файлы так, если новый набор тестов создается, тестер не нужно помнить, чтобы добавить его в файл бегун Существует только один бегун; только одно место, чтобы исправить / улучшить вместо десятков К сожалению, все, что я видел призывы к аннотациям к статическим. Я считаю, что это происходит из-за сроки, когда бегунок считывается до выполнения кода. Так что я вижу, если есть какой-нибудь способ, которым я не нахожу, чтобы добавить -DtestApp = app2 в командной строке, и что в свою очередь может заполнить бегуна. Я уже использую безошибочный плагин для установки других переменных в коде, поэтому я надеюсь, что я могу сделать то же самое с аннотациями. Динамически прочитать в * Test.class файлы так, если новый набор тестов создается, тестер не нужно помнить, чтобы добавить его в файл бегун Существует только один бегун; только одно место, чтобы исправить / улучшить вместо десятков К сожалению, все, что я видел призывы к аннотациям к статическим. Я считаю, что это происходит из-за сроки, когда бегунок считывается до выполнения кода. Так что я вижу, если есть какой-нибудь способ, которым я не нахожу, чтобы добавить -DtestApp = app2 в командной строке, и что в свою очередь может заполнить бегуна. Я уже использую безошибочный плагин для установки других переменных в коде, поэтому я надеюсь, что я могу сделать то же самое с аннотациями. только одно место, чтобы исправить / улучшить вместо десятков К сожалению, все, что я видел призывы к аннотациям к статическим. Я считаю, что это происходит из-за сроки, когда бегунок считывается до выполнения кода. Так что я вижу, если есть какой-нибудь способ, которым я не нахожу, чтобы добавить -DtestApp = app2 в командной строке, и что в свою очередь может заполнить бегуна. Я уже использую безошибочный плагин для установки других переменных в коде, поэтому я надеюсь, что я могу сделать то же самое с аннотациями. только одно место, чтобы исправить / улучшить вместо десятков К сожалению, все, что я видел призывы к аннотациям к статическим. Я считаю, что это происходит из-за сроки, когда бегунок считывается до выполнения кода. Так что я вижу, если есть какой-нибудь способ, которым я не нахожу, чтобы добавить -DtestApp = app2 в командной строке, и что в свою очередь может заполнить бегуна. Я уже использую безошибочный плагин для установки других переменных в коде, поэтому я надеюсь, что я могу сделать то же самое с аннотациями.
MivaScott
1

голосов
0

ответ
71

Просмотры

BeanDeserializerModifier Джексон не работает с конечными полями

Я написал пользовательский Serializer и изготовленную на заказ десериализацию сериализации свойства, отмеченное @Confidential аннотации. @Data общественного класса Person {частное имя строки; @Confidential частный адрес String; } Пользовательский Serializer сериализует POJO со следующими значениями: { «имя»: «Джон Доу», «адрес»: «Кирни St»} следующим образом: { «имя»: «адрес» «Джон Доу»: { "значение «:» IjIwMzEwIDU4dGggTG4gTkUi "}} Пользовательский десериализатор также может десериализации JSON обратно штрафа Person POJO. Тем не менее, когда я делаю поле в финале Person POJO, сериализация продолжает работать, но десериализации не удается. @Data общественного класса Person {частное окончательное название строки; @Confidential частный конечный адрес строки; } Вот' S реализация BeanSerializerModifier: @AllArgsConstructor общественного класса CustomDeserializerModifier расширяет BeanDeserializerModifier {личное окончательное ObjectMapper ObjectMapper; @Override общественного BeanDeserializerBuilder updateBuilder (окончательный DeserializationConfig конфигурация, конечная BeanDescription beanDesc, окончательный BeanDeserializerBuilder Builder) {итератор beanPropertyIterator = builder.getProperties (); beanPropertyIterator.forEachRemaining (settableBeanProperty -> {окончательная Конфиденциальная аннотацию = settableBeanProperty.getAnnotation (Confidential.class!), если (encryptedProperty = NULL) {JsonDeserializer ток = settableBeanProperty.getValueDeserializer (); Окончательный SettableBeanProperty newSettableBeanProperty = settableBeanProperty.withValueDeserializer (новый CustomDeserializer (аннотация, ток, ObjectMapper)); builder.addOrReplaceProperty (newSettableBeanProperty, правда); }}); вернуться строитель; }} Я обнаружил, что CustomDeserializer, никогда не вызывается, когда поля Person POJO являются окончательными. Вот сообщение об ошибке: com.fasterxml.jackson.databind.JsonMappingException: Невозможно десериализации экземпляра java.lang.String из маркеров START_OBJECT в [Источнике: { «имя»: «Джон Доу», «адрес»: { "значение ":" IjIwMzEwIDU4dGggTG4gTkUi "}}; Линия: 1, колонок: 30] (через эталонную цепь: com.custom.model.Person [»
user544192
1

голосов
0

ответ
21

Просмотры

Как изменить значение полей, отмеченная аннотацию по обработке аннотаций

Как установить значение переменной, а затем после того, как расчет прочитать его с помощью обработки аннотаций? Я знаю, как сделать это с отражением, но мне нужно использовать механизм обработки аннотаций. Является ли это возможным? Должен ли я изменить что-то в аннотации? @Target (ElementType.FIELD) @Retention (RetentionPolicy.RUNTIME) публичное @interface Bind {} общественного класса Model1 {@Bind частное ИНТ LL; @Bind частный двойной [] twKI; @Bind частный двойной [] twKS; @Bind частные двойной [] twINW; @Bind частная двойная [] twEKS; @Bind частные двойной [] twIMP; @Bind частный двойной [] KI; @Bind частные двойной [] KS; @Bind частный двойной [INW]; @Bind частная двойная [] ЭКС; @Bind частные двойной [] IMP; @Bind частный двойной [] ПКБ; общественный Model1 () {} общественный недействительный запуск () {Р = новый двойной [LL]; Р [0] = КИЙ [0] + KS [0] + INW [0] + EKS [0] - IMP [0]; для (целое т = 1; т <LL; т ++) {К.И. [т] = twKI [т] * К.И. [т-1]; К. С. [т] = twKS [т] * К. С. [т-1]; INW [т] = twINW [т] * INW [т-1]; EKS [т] = twEKS [т] * EKS [т-1]; ИМП [т] = twIMP [т] * ИМП [т-1]; Р [т] = KI [T] + KS [T] + INW [T] + EKS [T] - IMP [т]; }}} / * Часть кода, в котором я установить значения * / контроллер общественного класса {... частный класс 1 класс; частный ModelName объекта; class1 = Class.forName ( "zad1.models." + модель); ModelName = class1.newInstance (); Поле fieldtkWI = class1.getDeclaredField ( "twKI"); fieldtkWI.setAccessible (истина); fieldtkWI.set (ModelName, twKI); } EDIT: Это аннотации, чтобы позволить: назначая значение выходной переменной модели перед выполнением расчетов, загрузка значений переменных, вычисленных в модели (после того, как расчеты были проведены). К. С. [т] = twKS [т] * К. С. [т-1]; INW [т] = twINW [т] * INW [т-1]; EKS [т] = twEKS [т] * EKS [т-1]; ИМП [т] = twIMP [т] * ИМП [т-1]; Р [т] = KI [T] + KS [T] + INW [T] + EKS [T] - IMP [т]; }}} / * Часть кода, в котором я установить значения * / контроллер общественного класса {... частный класс 1 класс; частный ModelName объекта; class1 = Class.forName ( "zad1.models." + модель); ModelName = class1.newInstance (); Поле fieldtkWI = class1.getDeclaredField ( "twKI"); fieldtkWI.setAccessible (истина); fieldtkWI.set (ModelName, twKI); } EDIT: Это аннотации, чтобы позволить: назначая значение выходной переменной модели перед выполнением расчетов, загрузка значений переменных, вычисленных в модели (после того, как расчеты были проведены). К. С. [т] = twKS [т] * К. С. [т-1]; INW [т] = twINW [т] * INW [т-1]; EKS [т] = twEKS [т] * EKS [т-1]; ИМП [т] = twIMP [т] * ИМП [т-1]; Р [т] = KI [T] + KS [T] + INW [T] + EKS [T] - IMP [т]; }}} / * Часть кода, в котором я установить значения * / контроллер общественного класса {... частный класс 1 класс; частный ModelName объекта; class1 = Class.forName ( "zad1.models." + модель); ModelName = class1.newInstance (); Поле fieldtkWI = class1.getDeclaredField ( "twKI"); fieldtkWI.setAccessible (истина); fieldtkWI.set (ModelName, twKI); } EDIT: Это аннотации, чтобы позволить: назначая значение выходной переменной модели перед выполнением расчетов, загрузка значений переменных, вычисленных в модели (после того, как расчеты были проведены). ИМП [т] = twIMP [т] * ИМП [т-1]; Р [т] = KI [T] + KS [T] + INW [T] + EKS [T] - IMP [т]; }}} / * Часть кода, в котором я установить значения * / контроллер общественного класса {... частный класс 1 класс; частный ModelName объекта; class1 = Class.forName ( "zad1.models." + модель); ModelName = class1.newInstance (); Поле fieldtkWI = class1.getDeclaredField ( "twKI"); fieldtkWI.setAccessible (истина); fieldtkWI.set (ModelName, twKI); } EDIT: Это аннотации, чтобы позволить: назначая значение выходной переменной модели перед выполнением расчетов, загрузка значений переменных, вычисленных в модели (после того, как расчеты были проведены). ИМП [т] = twIMP [т] * ИМП [т-1]; Р [т] = KI [T] + KS [T] + INW [T] + EKS [T] - IMP [т]; }}} / * Часть кода, в котором я установить значения * / контроллер общественного класса {... частный класс 1 класс; частный ModelName объекта; class1 = Class.forName ( "zad1.models." + модель); ModelName = class1.newInstance (); Поле fieldtkWI = class1.getDeclaredField ( "twKI"); fieldtkWI.setAccessible (истина); fieldtkWI.set (ModelName, twKI); } EDIT: Это аннотации, чтобы позволить: назначая значение выходной переменной модели перед выполнением расчетов, загрузка значений переменных, вычисленных в модели (после того, как расчеты были проведены). частный ModelName объекта; class1 = Class.forName ( "zad1.models." + модель); ModelName = class1.newInstance (); Поле fieldtkWI = class1.getDeclaredField ( "twKI"); fieldtkWI.setAccessible (истина); fieldtkWI.set (ModelName, twKI); } EDIT: Это аннотации, чтобы позволить: назначая значение выходной переменной модели перед выполнением расчетов, загрузка значений переменных, вычисленных в модели (после того, как расчеты были проведены). частный ModelName объекта; class1 = Class.forName ( "zad1.models." + модель); ModelName = class1.newInstance (); Поле fieldtkWI = class1.getDeclaredField ( "twKI"); fieldtkWI.setAccessible (истина); fieldtkWI.set (ModelName, twKI); } EDIT: Это аннотации, чтобы позволить: назначая значение выходной переменной модели перед выполнением расчетов, загрузка значений переменных, вычисленных в модели (после того, как расчеты были проведены).
johhny.b
1

голосов
2

ответ
46

Просмотры

Passing TYPE annotations to methods instead of marker interfaces

[ОТВЕТ EDIT]: Короткий ответ, что я ищу, чтобы сделать это не представляется возможным. Мой вопрос немного вводит в заблуждение. Я узнал, что шаблон интерфейса Маркера на самом деле то, что я назвал Помеченные аннотации в моем вопросе (так как аннотация вы создаете на самом деле интерфейс). И чеки на которые могут быть сделаны только во время выполнения. Так что если вы хотите, чтобы сделать компиляции проверки времени с аннотациями ну это просто не представляется возможным. Пустой интерфейс является единственным вариантом. Проверьте ответ, чтобы увидеть, как это делается во время выполнения. Я стараюсь избегать использования маркеров интерфейсов в пользу отмеченных аннотаций. В основном я хочу куча классов будет помечена этой аннотацией, и передать экземпляры этих классов методов, которые принимают этот тип. Вот мой код: MARKER АННОТАЦИЯ: @Retention (RetentionPolicy.RUNTIME) @Target (ElementType. TYPE) публичное сообщение @interface {} КЛАСС: @Message общественного класса MessageTypeA {} Метод класса DatabaseWriter общественности {общественного недействительными сохранения (сообщ Message) {// некоторый код}} Вызывающий код: MessageTypeA msgA = новый MessageTypeA (); DatabaseWriter писатель = новый DatabaseWriter (); writer.save (msgA); Однако я получаю ошибки: (78, 23) Java: несовместимые типы: MessageTypeA не может быть преобразован в сообщение Я не уверен, если то, что я делаю это возможно, но я читал, что интерфейсы маркеров могут быть заменены на маркерные аннотаций. Разве не может быть в этом случае? Спасибо Однако я получаю ошибки: (78, 23) Java: несовместимые типы: MessageTypeA не может быть преобразован в сообщение Я не уверен, если то, что я делаю это возможно, но я читал, что интерфейсы маркеров могут быть заменены на маркерные аннотаций. Разве не может быть в этом случае? Спасибо Однако я получаю ошибки: (78, 23) Java: несовместимые типы: MessageTypeA не может быть преобразован в сообщение Я не уверен, если то, что я делаю это возможно, но я читал, что интерфейсы маркеров могут быть заменены на маркерные аннотаций. Разве не может быть в этом случае? Спасибо
Tiberiu
1

голосов
0

ответ
25

Просмотры

Обязательный тзд ошибки раньше сообща пользовательские ошибки

У меня есть класс с помощью аннотаций данных в ASP.NET MVC. Проблема заключается в том, что, когда пользователь ничего в поле, мои пользовательские огни проверки и не дает сбщ, что данные неверны. Дело в том, что я хотел бы показать пользователю сообщение об ошибке, которая связана с пустым полем - требуется ошибка Msg. [Требуемый (ErrorMessageResourceName = nameof (pl.accountNumberRequiredErrorMsg), ErrorMessageResourceType = TypeOf (PL))] [Дисплей (Имя = nameof (pl.accountNumber), Тип_ресурса = TypeOf (PL))] [MaxLength (50, ErrorMessageResourceName = nameof (пл .accountNumberFieldTooLongErrorMsg), ErrorMessageResourceType = TypeOf (PL))] [DisplayFormat (ConvertEmptyStringToNull = ложь)] [Namespace.Validators.AccountNumber (ErrorMessageResourceName = nameof (pl.accountNumberNotValidErrorMsg), ErrorMessageResourceType = TypeOf (PL))] публичная строка ACCOUNTNUMBER {получить; задавать; } Все отображается текст из ресурсов. Пользователь получает accountNumberNotValidErrorMsg, но должен accountNumberRequiredErrorMsg, потому что пользователь ничего в этой области не писать. Есть ли способ, чтобы убедиться, что первая ошибка будет требуемая ошибка?
Alice
1

голосов
0

ответ
39

Просмотры

Почему нулевой запрещен в качестве значения по умолчанию в аннотации?

В соответствии с «нулевым» значением аннотаций по умолчанию, нулевые значения запрещены в качестве значений по умолчанию в аннотации. Интересно, почему. Какова причина этого?
mmirwaldt
1

голосов
0

ответ
54

Просмотры

Что такое Envers @AuditMappedBy () должен делать?

Я использую Hibernate-Envers 4.3.11 Final Я вижу, что документация говорит: Чтобы правильно проверять такие отношения с Envers, вы можете использовать @AuditMappedBy аннотацию. Это позволяет указать обратное свойство (используя элемент mappedBy). В случае индексированных коллекций, столбец индекса также должен быть отображен в указанной организации (с использованием @column (вставной = ложь, обновляемый = ложь), и задается с помощью positionMappedBy. Это примечание затронет только путь Envers работает. Обратите внимание, что аннотаций является экспериментальным и может измениться в будущем. что означает документы в вид, когда он говорит: «указать обратное свойство»? у меня есть несколько объектов, которые имеют коллекции с ManyToOne и ManyToMany ссылкой и я хочу провести аудит объектов и их отношения и быть в состоянии чтобы получить изменения. Но я не могу» т, кажется, чтобы быть в состоянии пройти через данные вниз к коллекциям дочерних объектов, которые я ВОССТАНОВЛЕНИЕ, поэтому я предполагаю, что я не аудит отношения между сущностями корректно? Так что я думаю, что нужно использовать @AuditMappedBy (). Но я смущен, потому ли использовать I @AuditMappedBy (MappedBy = «NAME») на колоннах, которые являются коллекцией или @audited в верхней части моих сущностей, я вижу одни и те же результаты в таблицах аудита и данных, когда я получить мои сущности. Я до сих пор не понимаю, почему я хотел бы использовать @AuditMappedBy (). Может кто-то помочь мне понять случай использования для @AuditMappedBy ()? Пример иерархии таблицы и как мне нужно, чтобы пройти к коллекциям в дочерних таблицах: ** Таблица A: ** @Entity () @Audited @Table (имя = «TABLE_A») @column (имя = «ID») частная Длинный идентификатор; @Column (имя = "NAME", длина = 50) имя частной строки; @OneToMany (mappedBy = "TABLE_A", каскад = {CascadeType.MERGE, CascadeType.PERSIST}) @ org.hibernate.annotations.Cascade ({org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.DELETE_ORPHAN }) частная коллекция TABLE_B = новый ArrayList (); ** Таблица B: ** @Entity () @Audited @Table (имя = "TABLE_B") @column (имя = "ID") частная Long ID; @Column (имя = "NAME", длина = 50) частное имя строки; @XmlTransient @ManyToOne () @JoinColumn (имя = "ID_TABLE_B", обнуляемый = ложь) частное TABLE_A TABLE_A; @ManyToOne (каскад = {CascadeType.MERGE, CascadeType.PERSIST}) @ org.hibernate.annotations.Cascade ({org.hibernate.annotations.CascadeType. SAVE_UPDATE}) @JoinColumn (имя = "ID_TABLE_C") частное TABLE_C table_c; @ManyToOne (каскадный = {CascadeType.MERGE, CascadeType.PERSIST}) @ org.hibernate.annotations.Cascade ({org.hibernate.annotations.CascadeType.SAVE_UPDATE}) @JoinColumn (имя = "ID_TABLE_D", обнуляемым = истина) частная tABLE_D table_d; ** Таблица C: ** @Entity () @Audited @Table (имя = "TABLE_C") @column (имя = "ID") частная Long ID; @Column (имя = "NAME", длина = 50) частное имя строки; @OneToMany (mappedBy = "table_c", каскад = {CascadeType.REMOVE}) @ org.hibernate.annotations.Cascade ({org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.MERGE, org.hibernate .annotations.CascadeType. DELETE_ORPHAN}) @XmlTransient частной коллекции TABLE_B = новый HashSet (); ** Таблица D: ** @Entity () @Audited @Table (имя = "TABLE_D") @column (имя = "ID") частная Long ID; @Column (имя = "NAME", длина = 50) частное имя строки; @XmlTransient @OneToMany (mappedBy = "table_d", каскад = {CascadeType.MERGE, CascadeType.PERSIST}) частная коллекция TABLE_B = новый ArrayList ();
Joey Corkey
1

голосов
0

ответ
21

Просмотры

Пользовательское anntotation обернуть аннотации

В JAX-RS конечной точки, можно повторять много методов с: @ApiResponses (значение = {@ApiResponse (код = 200, сообщение = HTTP_STATUS_CODE_200_MESSAGE), @ApiResponse (код = 400), @ApiResponse (код = 403), @ApiResponse (код = 409), @ApiResponse (код = 429), @ApiResponse (код = 500), @ApiResponse (код = 501), @ApiResponse (код = 503), @ApiResponse (код = 509)}) Является ли можно обернуть все эти аннотации в один новую пользовательской аннотацию?
More Than Five

Просмотр дополнительных вопросов