<context:annotation-config />
<context:component-scan base-package="com.firstapp.dao"/>
<bean id="datasource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="system" />
<property name="password" value="oracle" />
</bean>
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="datasource"></property>
</bean>
public class UserDAO
{
@Autowired
private JdbcTemplate jdbcTemplate;
....}
public class UserService
{
private UserDAO userDAO = new UserDAO ();
....}
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
我打赌您的userDAO
类没有定义为Spring bean。在这种情况下,您有两种选择:用XML定义bean或对其进行注释。
选项1:XML
ApplicationContext.xml
<bean id="userDao" class="[package of UserDAO class].UserDAO">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
<context:annotation-config/>
<context:component-scan base-package="[package of UserDAO class]"/>
@Component
public class UserDAO {
@Autowired
private JdbcTemplate jdbcTemplate;
}
@Component // must be a bean as well
public class DummyClass {
private final UserDAO userDao;
@Autowired
public DummyClass(UserDAO userDao) {
this.userDao = userDao;
}
}
选项3:从应用程序上下文中手动提取Bean
我想强调的是,不推荐使用这种方法,您应该避免使用它,并正确使用依赖注入。如果您需要使用那种方法--您的应用程序的体系结构可能是错误的。
SpringBeanutil.java
@Component
public class SpringBeanUtil implements ApplicationContextAware {
private static ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
context = applicationContext;
}
public static <T> T getBean(Class<T> beanClass) {
return context.getBean(beanClass);
}
}
public class UserDAO {
private JdbcTemplate jdbcTemplate = SpringBeanUtil.getBean(JdbcTemplate.class);
}
当我试图启动SpringBoot主应用程序时,出现以下异常。为什么我会得到这个特例。 异常: Spring boot主java类
我正在关注应用程序中的条目。 我有下面的spring云服务器应用程序代码。 我收到以下错误。 启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2021 02月24日01:39:52.356错误20804---[restartedMain]o.s.b.d.LoggingFailureAnalysisReporter: 应用程序无法启动 描述:
我正在使用Spring方法级别的注释@cacheable来缓存我从数据库中获取的数据。我可以在服务器启动时使用上述注释执行缓存吗?我尝试了这个,但它再次从数据库而不是从缓存中获取。
我正在使用Spring Boot注册服务器(Eureka服务器)。目前它正在使用以下配置。 项目名称:注册服务 内部主要方式:系统。setProperty(“spring.config.name”、“注册服务”); "yml file": 文件名:注册-服务内容: 通过以上配置,应用程序开始在2323上运行。但如果我换了Spring。配置。名称,它不工作,开始给连接拒绝异常。 > 为什么会这样?即
我正在使用Angular2RC5。我希望能够在我的应用程序启动之前加载我的服务器IP地址和一些其他配置参数。我如何在最新的RC5中做到这一点? 我看过其他文章,但没有帮助: 如何在angular2中预加载配置文件:这里提供的答案是特定于webpad的。我正在使用系统js。 https://medium.com/@hasan.hameed/reading-configuration-files-in
问题内容: 我正在使用spring-cache来改善数据库查询,如下所示可以正常工作: 但是现在我想在启动时预先填充完整的图书缓存。这意味着我要调用并将所有值放入缓存。该例程应仅定期进行安排。 但是在使用时如何显式填充缓存? 问题答案: 像以前一样使用缓存,添加调度程序以更新缓存,下面是代码段。 确保你将为一个参数返回对象(默认)。否则,请公开其中的方法,以避免直接使用cacheManager。