Có ít nhất hai trường phái tư tưởng về việc làm thế nào để mô hình một khuôn khổ web yêu cầu / phản ứng loại. Đầu tiên nói rằng yêu cầu là một cái gì đó cần được thông qua xung quanh để xử lý không quốc tịch, đó là công việc servlets và điều khiển chính xác làm thế nào. | CHAPTER 9 VALIDATION 277 has to be injected. The isAutowireByName method returns true so a bean definition named jdbcTemplate needs to be configured in the Spring container see Listing 9-18 . The init method verifies whether a JdbcTemplate instance has been properly injected. Listing 9-18. Configuring JdbcTemplate to Be Injected in a Custom ValangFunction bean id jdbcTemplate class property name dataSource ref dataSource bean Next as shown in Listing 9-19 we have to register this function with ValangValidatorFactoryBean to use it in our constraints. Listing 9-19. Registering queryForInt Custom Function with Valang bean id validator class property name valang value CDATA userId 1 queryForInt select count 0 from users where userId userId User not found in database value property property name customFunctions props prop key queryForInt prop props property bean Custom Valang function classes can implement a number of Spring callback interfaces to get hold of the ApplicationContext or resource loader. Supported interfaces are If any of these interfaces are implemented by a registered custom function Valang will inject the related object. If your function implements ApplicationContextAware or BeanFactoryAware consider using autowiring to get hold of collaborating services instead of dependencylookup. 278 CHAPTER 9 VALIDATION Message Sources The Spring Applicationcontext implements the interface used to resolve messages based on the locale of the user. When error codes .