Spring入门-笔记01-Spring简介及环境搭建
目录
- Spring简介
- Spring特点
- Spring体系结构
- 环境搭建
1. Spring简介
Spring框架是一个针对javaEE的轻量级解决方案,其简化了javaEE企业级应用的开发过程,是目前最流行的javaEE集成框架。
主要功能:
- 基于依赖注入的核心功能
- 声明式的面向切面编程(AOP)支持
- 与多种持久层技术的整合
- 独立的Web MVC框架
2. Spring特点
Spring是一个轻量级的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)的容器框架。
有以下特点:
- 轻量:从大小与开销两方面而言都是轻量的。
- 控制反转:通过IoC(控制反转)技术促进了松耦合。
- 面向切面编程:Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统服务进行内聚性的开发。
- 容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上,Spring只是一种容器,开发者可以配置自己的每个Bean,可以创建一个单独的实例,或每次需要时创建新的实例,以及配置这些bean之间是如何相互关联的。
- 框架:Spring可以将简单的组件配置,组合成为复杂的应用。
3. Spring体系结构
Spring框架按其所属的功能可以划分为5个主要模块。
其中IoC和AOP是Spring所依赖的根本。
4. 环境搭建
以maven项目方式创建项目。
- 在IDE中创建maven项目
- 加入Spring依赖
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
</dependency>
- 创建pojo类
package com.chapter08.bean;
public class User {
private int id;
private String username;
private String password;
public User() {
}
public User(int id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
-
编写配置文件
在resources文件夹中创建applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<!--创建好pojo类之后,需配置对应的bean-->
<bean class="com.chapter08.bean.User" id="user">
<property name="id" value="1"/>
<property name="username" value="AlanLee"/>
<property name="password" value="123456"/>
</bean>
</beans>
- 测试
编写测试类TestMain.java
编写测试方法
/**
* 测试setter注入
*/
@Test
public void testUserBean_setter(){
//加载配置文件
ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) ctx.getBean("user");
System.out.println("id = " + user.getId());
System.out.println("username = " + user.getUsername());
System.out.println("password = " + user.getPassword());
ctx.close();
}
No Log4j2的问题解决方法
运行项目时,在控制台会输出如下错误信息:
ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property ‘log4j2.debug’ to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2
解决方法:
在resources文件夹中创建log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="com.opensymphony.xwork2" level="info"/>
<Logger name="org.apache.struts2" level="info"/>
<Logger name="org.demo.rest" level="debug"/>
<Root level="warn">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>