浅谈Spring Context加载方式

时间:2021-05-19

Spring 加载方式

对于可执行文件方式,我们一般的加载Spring 配置的方式是

ClassPathXmlApplicationContext

public static void main(String[] args) { ClassPathXmlApplicationContext xmlApplicationContext = new ClassPathXmlApplicationContext("classpath:spring-context.xml"); DemoService demoService = (DemoService) xmlApplicationContext.getBean("demoService"); String text = demoService.hello(); System.out.println(text); }<beans xmlns="http://.jin.lesson.context"/></beans>

从spring 3.0开始,开始使用注解的方式来进行spring 配置的注册

public static void main(String[] args) { AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(); // 告诉要扫描的包,通常是应用的根目录的Application类 annotationConfigApplicationContext.scan(Main.class.getPackage().getName()); // 刷新上下文,使用得相应的bean注册成功 annotationConfigApplicationContext.refresh(); // 通过名称的方式获取相应的DemoService DemoService demoService = (DemoService) annotationConfigApplicationContext.getBean("demoService"); String text = demoService.hello(); System.out.println(text); }

demoService是定义的一个Service的名称,xml配置的方式也是可以设定好是否采用注解的方式进行扫描,如1中的

<context:annotation-config/>

demoService 很简单,如下的方式

@Service(value = "demoService")public class DemoService { public String hello() { return "hello world"; }}

Web应用的初始化

  • web.xml配置方式
  • 注解的方式
  • web.xml 配置方式

    利用spring 自带的Servlet 进行初始注册

    <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-context.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

    利用 Listener进行注册 ,像Spring+structs,就是以这种方式来初始化上下文内容的

    <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener>

    注解的方式

    也是利用Servlet的方式来配置初始化参数,不过这次里要用基于注解的类AnnotationConfigWebApplicationContext,同时要注册Servlet

    @Override public void onStartup(ServletContext servletContext) throws ServletException { ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", DispatcherServlet.class); dispatcher.setInitParameter("contextConfigLocation", getClass().getName()); dispatcher.setInitParameter("contextClass", AnnotationConfigWebApplicationContext.class.getName()); dispatcher.addMapping("/*"); dispatcher.setLoadOnStartup(1); }

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章