1. 程式人生 > >Spring 梳理 - javaConfig在App和webApp中的應用

Spring 梳理 - javaConfig在App和webApp中的應用

  1. package com.dxz.demo.configuration;
    
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class TestConfiguration {
        public TestConfiguration() {
            System.out.println("TestConfiguration容器啟動初始化。。。");
        }
    }

     

  2. APP
    1. 方法1
      1. package com.dxz.demo.configuration;
        
        import org.springframework.context.ApplicationContext;
        import org.springframework.context.annotation.AnnotationConfigApplicationContext;
        
        
        public class TestMain { public static void main(String[] args) { // @Configuration註解的spring容器載入方式,用AnnotationConfigApplicationContext替換ClassPathXmlApplicationContext ApplicationContext context = new AnnotationConfigApplicationContext(TestConfiguration.class); // 如果載入spring-context.xml檔案:
        // ApplicationContext context = new // ClassPathXmlApplicationContext("spring-context.xml"); } } public static void main(String[] args) { // @Configuration註解的spring容器載入方式,用AnnotationConfigApplicationContext替換ClassPathXmlApplicationContext ApplicationContext context = new AnnotationConfigApplicationContext(TestConfiguration.class
        ); //獲取bean TestBean tb = (TestBean) context.getBean("testBean"); tb.sayHello(); }

         

    2. 方法2
      1. public static void main(String[] args) {
          ApplicationContext ctx = new AnnotationConfigApplicationContext();
          ctx.register(AppContext.class)
        }

         

  3. webApp
    1. 方法1
      1. <web-app>
            <context-param>
                <param-name>contextClass</param-name>
                <param-value>
                    org.springframework.web.context.
                    support.AnnotationConfigWebApplicationContext
                </param-value>
            </context-param>
            <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>
                    demo.AppContext
                </param-value>
            </context-param>
            <listener>
                <listener-class>
                    org.springframework.web.context.ContextLoaderListener
                </listener-class>
            </listener>
            <servlet>
            <servlet-name>sampleServlet</servlet-name>
            <servlet-class>
                org.springframework.web.servlet.DispatcherServlet
            </servlet-class>
            <init-param>
                <param-name>contextClass</param-name>
                <param-value>
                    org.springframework.web.context.
                    support.AnnotationConfigWebApplicationContext
                </param-value>
            </init-param>
            </servlet>
        </web-app>

         

    2. 方法2
      1. package com.jt;
        
        import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
        
        public class AppInitializer   extends AbstractAnnotationConfigDispatcherServletInitializer{
              @Override
              protected Class<?>[] getRootConfigClasses() {
                return new Class<?>[] { RootConfig.class };
              }
        
              @Override
              protected Class<?>[] getServletConfigClasses() {
                return new Class<?>[] { WebConfig.class };
              }
        
              @Override
              protected String[] getServletMappings() {
                return new String[] { "/" };
              }
        
            }