一、依赖注入与控制反转
控制反转:通过一下方法,将不同的组件组合为一个应用程序。
依赖注入:就是控制反转的一种别名。
二、模块
每个模块 | 功能 |
---|---|
核心容器 | spring-core和spring-beans模块提供了框架的基础功能,包括IOC和依赖注入功能。上下文模块提供了一个框架式的对象访问方式。spring-expression模块提供了强大的表达式语言去支持查询和操作运行时对象图 |
AOP和Instrumentation | spring-aop模块提供了面向切面编程的方式。spring-instrument模块提供了类植入(instrumentation)支持和类加载器的实现,可以 应用在特定的应用服务器中 |
消息 | spring-messaging(消息传递模块)传输消息,模块还包括一组用于将消息映射到方法的注释 (annotations),类似于基于Spring MVC注释的编程模型 |
数据访问/集成 | spring-jdbc模块提供了一个JDBC –抽象层,消除了需要的繁琐的JDBC编码和数据 库厂商特有的错误代码解析。 spring-tx模块支持用于实现特殊接口和所有POJO(普通Java对象)的类的编程和 声明式事务 管理。 spring-orm模块为流行的对象关系映射(object-relational mapping )API提供集成 层。spring-oxm模块提供了一个支持对象/ XML映射实现的抽象层。spring-jms模块(Java Messaging Service) 包含用于生产和消费消息的功能。 |
Web | spring-web模块提供基本的面向Web的集成功能。spring-webmvc模块(也称为Web-Servlet模块)包含用于Web应用程序的Spring的 模型-视图-控制器(MVC)和REST Web Services实现。 |
测试 | spring-test模块支持使用JUnit或TestNG对Spring组件进行单元测试和 集成测试 |
三、配置日志
spring的使用场景:从在资源受限设备上 运行的嵌入式应用程序到使用Spring的事务管理功能和Web框架集成的全面的企业 应用程序。
日志文件的配置
spring中有个commons-logging,它的好处在于,您不需要任何其他操作来使您的应用程序正常工 作。当然我们可以选择其他的日志依赖关系。此时我们需要:
关闭commons-logging
可以这样关闭:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<exclusions><!--这里 -->
<exclusion><!--这里 -->
<groupId>commons-logging</groupId><!--这里 -->
<artifactId>commons-logging</artifactId><!--这里 -->
</exclusion>
</exclusions>
</dependency>
3.1 使用SLF4J
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.0.M5</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.22</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.7</version>
</dependency>
</dependencies>
3.2 使用Log4j
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>2.7</version>
</dependency>
</dependencies>
这时需要一个log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %lo gger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="org.springframework.beans.factory" level="DEBU G"/>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>