Как Вы используете стереотипные аннотации в Spring 2.5.x?

При перемещении в Spring 2.5.x я нашел, что он добавляет больше стереотипных аннотаций (сверху @Repository от 2,0): @Component, @Service и @Controller. Как Вы используете их? Вы полагаетесь на неявную Пружинную опору, или Вы определяете пользовательский стереотип определенные функции/аспекты/функции? Или это преимущественно для маркировки бобов (время компиляции, концептуальное, и т.д.)?

11
задан topchef 27 March 2010 в 15:14
поделиться

3 ответа

Следующие стереотипные аннотации в 2.5 могут использоваться в приложении Spring MVC в качестве альтернативы связыванию bean-компонентов в XML:

  • @Repository - для bean-компонентов DAO - позволяет генерировать исключение DataAccessException, когда {{ 1}} источник данных недоступен.

  • @Service - для бизнес-компонентов - - это довольно простые компоненты, для которых настроены некоторые политики хранения по умолчанию.

  • @Controller - для сервлетов - позволяет настраивать сопоставления запросов страниц и т. Д.

Кроме того, была введена общая четвертая аннотация: @Component. Все аннотации MVC являются специализациями этой, и вы даже можете использовать @Component самостоятельно, хотя, делая это в Spring MVC, вы не будете использовать какие-либо будущие оптимизации / функциональные возможности, добавленные к аннотациям более высокого уровня. Вы также можете расширить @Component, чтобы создать свои собственные стереотипы.

Вот краткий пример аннотаций MVC в действии ... Во-первых, объект доступа к данным:

@Repository
public class DatabaseDAO {
    @Autowired
    private SimpleJdbcTemplate jdbcTemplate;

    public List<String> getAllRecords() {
        return jdbcTemplate.queryForObject("select record from my_table", List.class);
    }
}

Служба:

@Service
public class DataService {
    @Autowired
    private DatabaseDAO database;

    public List<String> getDataAsList() {
        List<String> out = database.getAllRecords();
        out.add("Create New...");
        return out;
    }
}

И, наконец, контроллер:

@Controller("/index.html")
public class IndexController {
    @Autowired
    private DataService dataService;

    @RequestMapping(method = RequestMethod.GET)
    public String doGet(ModelMap modelMap) {
        modelMap.put(dataService.getDataAsList());
        return "index";
    }
}

Я нашел эту статью очень хорош для предоставления широкого обзора стереотипных аннотаций в дополнение к официальной документации .

13
ответ дан 3 December 2019 в 07:36
поделиться

Аннотации больше не относятся к MVC. Дополнительную информацию см. В справочной документации . Примером использования аннотации @Component или ее спецификации является tcServer с поддержкой мониторинга. См. Пример здесь . Эта поддержка мониторинга добавлена ​​с ткачеством AspectJ во время загрузки.

Подводя итог, можно сказать, что аннотации могут использоваться в различных настройках во время выполнения после запуска контейнера Spring или во время компиляции / загрузки с переплетением AspectJ.

3
ответ дан 3 December 2019 в 07:36
поделиться

не забудьте добавить этот тег в xml

    <context:component-scan  base-package="com.example.beans"/> 
0
ответ дан 3 December 2019 в 07:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: