spring框架:
spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器。Spring专注于基础设施,这才使得开发者们能够更好的致力于应用开发而不用去关心底层的框架。Spring框架的核心功能适用于任何Java应用。
spring 优势:
- Spring就是一个大工厂(容器),可以将所有对象创建和依赖关系维护,交给Spring管理
spring工厂是用于生成bean - Spring框架能有效的组织中间层对象、dao、service、web层等
- Spring框架实现了面向接口编程(AOP)
- 使用Spring构建的应用程序易于进行单元测试。
- Spring提高了代码的可重用性
- Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持
IOC容器:
控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。 控制反转还有一个名字叫做依赖注入,ioc是一种设计模式
Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化 Bean 并建立 Bean 之间的依赖关系。 Spring 的 IoC 容器在完成这些底层工作的基础上,还提供了 Bean 实例缓存、生命周期管理、 Bean 实例代理、事件发布、资源装载等高级服务。
使用ioc:
首先我们要在pom.xml里注入相关依赖:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<spring.version>4.1.6.RELEASE</spring.version>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
配置相关的配置文件applicationContext.xml:
<bean id="UserDao" class="com.chinasofti.etc.dao.impl.UserDAOImpl" />
<bean id="UserService" class="com.chinasofti.etc.service.impl.UserServiceImpl">
<property name="userDao" ref="UserDao"></property>
</bean>
<bean id="userController1" class="com.chinasofti.etc.web.UserController">
<property name="userService" ref="UserService"></property>
</bean>
使用ioc容器:
public class App {
public static void main(String[] args) {
//根据配置文件构建IOC容器
ApplicationContext ctx =new ClassPathXmlApplicationContext("applicationContext.xml");
//从容器中获取bean,相当于创建了UserController的实例了
UserController userController = ctx.getBean("userController", UserController.class);
String resultMessage = userController.login("zhangsan","123");
System.out.println(resultMessage);
}