标签:out mvc 依赖 异常处理 nfa 实例化 关联 lap pat
一、spring框架概念
spring是众多开源java项目中的一员,基于分层的javaEE应用一站式轻量级开源框架,主要核心是Ioc(控制反转/依赖注入) 与Aop(面向切面)两大技术,实现项目在开发过程中的轻松解耦,并极大的提高项目的开发效率。
在项目中引入spring立即可以带来下面的好处 降低组件之间的耦合度,实现软件各层之间的解耦。可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务.也不需处理复杂的事务传播。 容器提供单例模式支持,开发人员不再需要自己编写实现代码。 容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能。
组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。
思考:Bean 是如何被实例化的?---工厂模式(简单模拟实现工厂模式)
简单工厂模式:抽象产品角色,具体产品角色,工厂角色
特点:
I.要有该工厂类及工厂方法
II.工厂方法为静态的
相比较静态工厂实现
I.工厂方法为非静态方法
II.需要配置工厂bean,并在业务bean中配置factory-bean,factory-method属性
spring三种实例化bean的方式比较
方式一:通过bean的缺省构造函数创建,当各个bean的业务逻辑相互比较独立的时候或者和外界关联较少的时候可以使用。
方式二:利用静态factory方法创建,可以统一管理各个bean的创建,如各个bean在创建之前需要相同的初始化处理,则可用这个factory方法险进行统一的处理等等。
方式三:利用实例化factory方法创建,即将factory方法也作为了业务bean来控制,1可用于集成其他框架的bean创建管理方法,2能够使bean和factory的角色互换。
开发中项目一般使用一种方式实例化bean,采用第一种方式最好,交给spring托管,使用时直接拿来使用即可。另外两种了解即可
四、Spring Ioc 4种注入方式
1)Set注入
xml配置(同时 spring 也提供了对于基本数据类型的set注入方式)
java类
1 package com.wisezone.dao; 2 3 public class UserDao { 4 5 public void save(){ 6 System.out.println("保存用户记录!"); 7 } 8 }
1 package com.wisezone.service; 2 3 import com.wisezone.dao.UserDao; 4 5 public class UserService { 6 7 private UserDao userDao; 8 9 private Integer age;//年龄 10 11 private boolean sex;//性别 12 13 private String name;//姓名 14 15 16 public void setAge(Integer age) { 17 this.age = age; 18 } 19 20 public void setSex(boolean sex) { 21 this.sex = sex; 22 } 23 24 public void setName(String name) { 25 this.name = name; 26 } 27 28 public void setUserDao(UserDao userDao) { 29 this.userDao = userDao; 30 } 31 32 public String save(){ 33 System.out.println("age:"+age+"--->sex:"+sex+"--->name:"+name); 34 userDao.save(); 35 return "hello spring"; 36 } 37 }
1 package com.wisezone.test; 2 3 import static org.junit.Assert.*; 4 5 import org.junit.Test; 6 import org.springframework.context.ApplicationContext; 7 import org.springframework.context.support.ClassPathXmlApplicationContext; 8 import org.springframework.context.support.FileSystemXmlApplicationContext; 9 10 import com.wisezone.service.UserService; 11 12 public class TestUserService { 13 14 @Test 15 public void test() { 16 /** 17 * 1、启动容器 18 * 2、获取bean 19 * 3、调用bean方法,打印信息 20 */ 21 //1、传入xml 启动spring 容器 22 ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml"); 23 24 //2、获取bean 25 UserService userService = (UserService) ac.getBean("userService"); 26 27 //3、调用bean方法,打印信息 28 System.out.println(userService.save()); 29 } 30 31 }
结果:
标签:out mvc 依赖 异常处理 nfa 实例化 关联 lap pat
原文地址:http://www.cnblogs.com/wdh1995/p/6781578.html