2013-10-27 3 views
0

, используя этот тип строк кода в @PostConstruct метода:метод @PostConstruct в управляемом компоненте

listA = myService.getMylist(); 

так Если мы используем это в методе @PostConstruct в управляемом компоненте (приложение JEE), что вы могли бы дать мне в качестве совета:

  • Использование блока catch try.
  • Не используйте этот тип кодовых строк в методе @PostConstruct.

Потому что, когда я тестирую свое приложение, моя база данных заполнена, но когда я поставлю ее, db должен быть пустым и администратором, который будет обновлять DB. поэтому, конечно, будут некоторые исключения.

+0

Зачем пустое db выдает ошибку? – Keppil

+0

Просто убедитесь, что 'myService' правильно инстанцируется/вводится перед использованием, а метод' MyService # getMylist' всегда возвращает 'List ', даже если в вашем источнике данных нет данных. –

+0

спасибо, но все, что вы сказали, верно, но если listA имеет значение null, использование этого приведет к ошибке? –

ответ

0

Это зависит от вашей установки. Любой из них подходит, если все исключения обрабатываются. Это может быть просто итерацией по списку для каждого элемента, и если ни один элемент (или не равен нулю) ничего не делает с объектом. Если это фактическое состояние ошибки для того, чтобы никакие элементы не возвращались (т.е. страница не может работать без этого элемента), затем генерируйте исключение.

Возможно, было бы лучше исключить исключение из кода, который получает данные из базы данных (например, в методе службы, а не в DAO или в любом эквивалентном коде, который у вас есть)? Таким образом, вы удаляете функциональность из управляемого компонента и можете обрабатывать его в рамках вашей структуры. Или, что более подходит для списков List, просто убедитесь, что вы создаете экземпляр перед его возвратом. (т.е. List<Object> listA = new ArrayList<Object>; ...*populate list* .... return listA;). Тогда, когда вы повторяете, ничего не будет называться.

+0

Я благодарю вас за вашу благодарность. –

1

Практически во всех случаях наилучшей практикой является инициализация пустой коллекции, если нет элементов вместо простой ссылки, указывающей на нуль. Поэтому, если вы разрабатываете слой службы, тогда не возвращайте нулевые коллекции - вместо этого возвращайте пустую коллекцию. Кроме того, если это необходимо для вашего проекта, чтобы список не был пустым (это означает, что это неприемлемое условие), вы должны выбросить ошибку, чтобы указать недопустимое условие, и прекратить инициализацию компонента.

+0

спасибо, это полезно. –

Смежные вопросы