zoukankan      html  css  js  c++  java
  • Spring框架基础(下)

    • log4J
      • 导入log4J.jar
      • 创建log4J.properties
        # Create a file called log4j.properties as shown below and place it in your classpath:
        # 创建一个名为log4j.properties的文件,如下所示,并将其放在类路径中:
        # Global logging configuration
        # 在开发环境下日志级别要设置成DEBUG,生产环境设置成info或error
        log4j.rootLogger=DEBUG, stdout
        # MyBatis logging configuration...
        log4j.logger.org.mybatis.example.BlogMapper=TRACE
        # Console output...
        log4j.appender.stdout=org.apache.log4j.ConsoleAppender
        log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
        log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
    • Spring整合web项目原理
      • 加载spring核心配置文件
        • 加载spring配置文件时,new对象可以实现功能,但效率低
          ApplicationContext applicationContext = new ClassPathXmlApplicationContext("service/service.xml");
        • 解决办法
          • 实现思想
            • 把加载配置文件和创建对象过程,在服务器启动时候完成
          • 实现原理(ServletContext对象、监听器)
            • 在ServletContext对象创建时候,使用监听器可以具体到ServletContext对象在什么时候创建
            • 使用监听器(ServletContextListener)监听到ServletContext对象创建时候
              • 加载spring配置文件,把配置文件配置对象创建
              • 把创建出来的对象放到ServletContext域对象里面(setAttribute)
              • 获取对象时候,到ServletContext域得到(getAttribute)
                /**
                * 实现监听器
                */
                public class BaseListener implements ServletContextListener {
                    @Override
                    public void contextInitialized(ServletContextEvent servletContextEvent) {
                        ServletContext servletContext = servletContextEvent.getServletContext();
                        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("service/service.xml");
                
                        servletContext.setAttribute("applicationContext",applicationContext);
                    }
                
                    @Override
                    public void contextDestroyed(ServletContextEvent servletContextEvent) {
                
                    }
                }
                
                
                <!-- 在web.xml配置listener -->
                
                  <!-- 配置listener -->
                    <listener>
                        <listener-class>cn.muriel.auto.web.listener.BaseListener</listener-class>
                    </listener>
                
                
                <!-- 测试代码 -->
                <%@ page import="cn.muriel.auto.service.UserService" %>
                <%@ page import="cn.muriel.auto.dao.UserDao" %>
                <%@ page import="org.springframework.context.ApplicationContext" %>
                <%@ page contentType="text/html;charset=UTF-8" language="java" %>
                <html>
                <head>
                    <title>$Title$</title>
                </head>
                <body>
                <%
                    ApplicationContext applicationContext = (ApplicationContext) application.getAttribute("applicationContext");
                    UserService userService = (UserService) applicationContext.getBean("userService");
                    UserDao userDao = (UserDao) applicationContext.getBean("userDao");
                    userService.setUserDao(userDao);
                    userService.addUser();
                %>
                </body>
                </html>
  • 相关阅读:
    HDU1496 Equations 卡时间第二题
    HDU3833 YY's new problem 卡时间第一题
    hiho1601最大分数 DP
    密码脱落
    hihoCoder
    王坚十年前的坚持,才有了今天世界顶级大数据计算平台MaxCompute
    SaaS加速器 I 商业中心:提供商业助力 共享商业成功
    发布SaaS加速器:我们不做SaaS,我们只做SaaS生态的推进者和守护者
    MaxCompute SQL 使用正则表达式选列
    MaxCompute如何对SQL查询结果实现分页获取
  • 原文地址:https://www.cnblogs.com/fatRabbit-/p/10556275.html
Copyright © 2011-2022 走看看