Spring概述
- Spring是一个开源框架
- Spring为简化企业级开发而生,使用Spring,javaBean就可以实现很多以前要靠EJB(Enterprise JavaBean)才能实现的功能。同样的功能,在EJB中通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。
- Spring是一个IOC(控制反转)和AOP(面向切面编程)容器框架。
- Spring的优良特性
①非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的Api(实现接口或者继承类,又叫做轻量级的)
② 依赖注入:DI——Dependency Injection,反转控制(IOC)最经典的 实现。
③ 面向切面编程:Aspect Oriented Programming——AOP
④ 容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期
⑤ 组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。 - 5)一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring 自身也提供了表述层的SpringMVC和持久层的Spring JDBC)。
Spring使用
- 创建项目后,在pom.xml文件中导入依赖
pom.xml的依赖如下:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- Spring依赖 -->
<!-- 1.Spring核心依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- 2.Spring dao依赖 -->
<!-- spring-jdbc包括了一些如jdbcTemplate的工具类 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- 3.Spring web依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
- 在main下新建一个resources并将它Mark,操作如下
在创建完的resources下,引入配置文件applicationContext.xml
配置文件的内容:
<bean id="user" class="com.dahua.pojo.User">
<property name="id" value="1001"></property>
<property name="name" value="tom"></property>
<property name="password" value="tom123"></property>
<property name="fired">
<list>
<value>大满</value>
<value>小满</value>
</list>
</property>
</bean>
<bean id="user1" class="com.dahua.pojo.User">
<constructor-arg value="1002"></constructor-arg>
<constructor-arg value="waiwai"></constructor-arg>
<constructor-arg value="waiwai123"></constructor-arg>
</bean>
<bean id="user2" class="com.dahua.pojo.User" p:id="1003" p:name="xiaozhou" p:password="zhou123">
</bean>
- 在java代码com.dahua.pojo包下创建实体类
User类,代码如下
package com.dahua.pojo;
import java.util.List;
public class User {
private int id;
private String name;
private String password;
private List<String> fired;
public List<String> getFired() {
return fired;
}
public void setFired(List<String> fired) {
this.fired = fired;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(int id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
public User() {
}
}
- 创建测试类,
package com.dahua.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.dahua.pojo.User;
public class Demo {
public static void main(String[] args) {
// 使用spring反射 getset方式
ApplicationContext ApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
User user =(User) ApplicationContext.getBean("user");
System.out.println(user.getName());
user.setName("jack");
System.out.println(user.getName());
System.out.println(user.getFired().get(0));
//构造方法
// ApplicationContext ApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
// User user =(User) ApplicationContext.getBean("user1");
// System.out.println(user.getName());
// ApplicationContext ApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
// User user =(User) ApplicationContext.getBean("user2");
// System.out.println(user.getName());
// ApplicationContext ApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
// UserServiceImp userServiceImp =(UserServiceImp) ApplicationContext.getBean("userService");
// userServiceImp.service();
}
}
下面就是测试结果