该问题通常是由于注入的@Service的类缺少默认的构造函数或者构造函数抛出了异常所导致的。解决方法是为这个@Service添加一个默认的构造函数或者处理构造函数抛出的异常,以确保这个@Service可以被正确地实例化。如果这个@Service依赖于其他的组件,可以考虑使用@Autowired或者@PostConstruct来完成依赖注入。
示例代码:
@Service public class UserService { private UserDao userDao;
@Autowired
public UserService(UserDao userDao) {
this.userDao = userDao;
}
public void addUser(User user) {
userDao.add(user);
}
}
@Service public class UserDao { private JdbcTemplate jdbcTemplate;
public UserDao(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void add(User user) {
String sql = "INSERT INTO user(name, age) VALUES(?, ?)";
jdbcTemplate.update(sql, user.getName(), user.getAge());
}
}
@Configuration public class AppConfig { @Bean public JdbcTemplate jdbcTemplate() { // create and return a JdbcTemplate object here }
@Bean
public UserService userService() {
return new UserService(userDao());
}
@Bean
public UserDao userDao() {
return new UserDao(jdbcTemplate());
}
}