如何调用spring配置文件手动注入的bean
发布网友
发布时间:2022-04-21 01:06
我来回答
共2个回答
热心网友
时间:2022-06-17 00:19
1jsp页面如果想要根据id直接查询信息的话,可能会需要这样的代码
2而应用类Spring框架之后如上图的NewsService里面是没有实例化过的NewsDao的,这样上面图中的方法就执行不了
3那假如想要使用NewsServcie中的方法,就需要去找Spring,在Action因为设置了setter方法注入所以可以直接获得实例化好的对象,那在jsp中呢?
4首先你需要有一个jar包,形如spring-web-3.2.0.M2.jar,将此包加入build Path并部署或者直接复制到WEB-INF/lib下,这是spring应用在web项目时需要用到的jar包
然后在jsp页面中导入相关的工具类:
<%@ page import="org.springframework.web.context.support.WebApplicationContextUtils"%><%@ page import="org.springframework.web.context.WebApplicationContext"%>
5最后通过以下语句获取配置文件中相应的Bean
WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext()); NewsService service = (NewsService)wac.getBean("newsService");
注意getBean()方法中传入的是配置文件中的Bean的id
这样就可以在页面中访问Spring的Bean了,同时也可以访问service的方法了
热心网友
时间:2022-06-17 00:19
<!-- 配置一个singleton Bean实例:默认 -->
<bean id="bean1" class="com.Bean1" />
<!-- 配置一个prototype Bean实例 -->
<bean id="bean2" class="com.Bean2" scope="prototype"/>
</beans>
程序中获取bean的操作:
public class SpringTest {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
//判断两次请求singleton作用域的Bean实例是否相等
System.out.println(ctx.getBean("bean1")==ctx.getBean("bean1"));
//判断两次请求prototype作用域的Bean实例是否相等
System.out.println(ctx.getBean("bean2")==ctx.getBean("bean2"));
}
}
JSP页面怎样调用Spring配置文件中定义的Bean
首先你需要有一个jar包,形如spring-web-3.2.0.M2.jar,将此包加入build Path并部署或者直接复制到WEB-INF/lib下,这是spring应用在web项目时需要用到的jar包 然后在jsp页面中导入相关的工具类:<%@ page import="org.springframework.web.context.support.WebApplicationContextUtils"%><%@ page ...
spring读取配置文件的方式(spring如何读取配置文件)
Spring加载配置文件的方式1、首先手动加载Spring配置文件有两个类,分别是ClassPathXmlApplicationFileSystemXmlApplicationContext;两个类的区别。然后就是“classpath:”是可以缺省的。2、首先,Spring加载配置文件是在refresh#obtainFreshBeanFactory方法中进行的。逻辑是在loadBeanDefinitions方法中进行的,Spring...
十六、配置文件 十七、如何取得Spring管理的bean
1、servlet方式加载时,【web.xml】<servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param>contextConfigLocationclasspath*:/springMVC.xml</init-param><load-on-startup>1</load-on-startup></servlet>spring...
JSP页面怎样调用Spring配置文件中定义的Bean
WebApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(application);Bean bean = (Bean)context.getBean("beanName");jsp要引入 org.springframework.web.context.WebApplicationContext org.springframework.web.context.support.WebApplicationContextUtils ...
JSP页面怎样调用Spring配置文件中定义的Bean
你先要再service里面把bean注入进来啊 然后添加到页面返回值里面 就可以在前台拿到这个数据了
Java中如何获取Spring中配置的bean
方法一:在初始化时保存ApplicationContext对象代码:ApplicationContext ac = new FileSystemXmlApplicationContex("applicationContext.xml"); ac.getBean("beanId");说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。方法二:通过Spring提供的工具类获取Application...
如何使用spring的autowire为servlet注入bean
使用Spring的@Autowired为Servlet注入Bean:思路如下:1. 创建一个类似于DelegatingFilterProxy的代理,通过代理根据配置找到实际的Servlet,完成业务逻辑功能。假定有一个Servlet名为UserServlet,需要注入一个UserManager,伪代码如下:public class UserServlet extends HttpServlet { Autowired(required = true)pr...
springboot注解注入bean(springbootapplication注解)
1、[@Configuration+@Bean]Configuration用来声明一个配置类,然后使用@Bean注解,用于声明一个bean,将其加入到Spring容器中。2、@Import注解导入 该注解用的可能不是很多,但是非常重要,进行spring扩展的时候经常用到。经常搭配自定义注解使用,然后王容器中注入一个配置文件。使用:这里就可以直接使用了,...
springboot 根据配置文件的不同,选择注入不同的bean
3.如何使用 AbstractServiceImpl1-- 默认使用的方法 UserServiceImpl1-- UserServiceImpl2-- 使用时,直接注入service,会根据配置文件来选择哪个service生效 4.上面是针对一个配置项,如果有多个配置项,可以使用@ConditionalOnExpression,来根据表达式来选择使用哪个service ConditionalOnExpression 源码说明 使用起来也比较方便...
普通Java类获取spring 容器的bean的5种方法
采用Lookup方法注入的案例:新的业务代码:配置文件:beans-lookup.xml,变化部分:测试类:测试结果:控制台打印出的两个Command地址不同,表示实现了 Lookup方法注入。该方式干净整洁,易于扩展,符合IoC规则,推荐使用。分析Spring bean的scope属性范围:scope属性声明了IoC容器中的对象应该处的限定场景或该...