spring--实战(1)

1、  spring的目标:简化java开发,促进代码的松散耦合。关键在于DI和AOP
方法:增强pojo(plain old java object)-àspring bean
策略:
a)基于POJO的轻量级和最小入侵性编程
b)通过依赖注入和面向切面借口实现松耦合
c)基于切面和惯例进行生命式编程
d)通过切面和模板减少样板式代码

2、  spring的非入侵性
public class HelloWorldBean {
  public String sayHello(){
    return “Hello World”;
  }
}
在这样一个SpringBean中没有任何的spring痕迹,最可能看到spring的痕迹是使用spring的注解,那样才会在bean中看到使用了spring

3、  依赖注入dependencyinject
主要作用:解耦。使对象之间保持松散耦合。
通过DI,对象的依赖关系将由系统中负责协调各对象的第三方组件在创建对象的时候进行设定。对象无需自行创建或管理他们的依赖关系(一个对象中使用另一个对象时,不用这个对象自己去(new)创建,而是交给第三方组件。

方式:1、构造器注入(constructor injection)   2、setter注入
      将bean联系起来的方式:1、xml配置文件2、帮助类+注解
工作:spring通过应用上下文Application Context装载bean的定义并把他们组装起来。Spirng应用上下文:全权负责对象的创建和组装。
spring实现应用上下文的方式:
    1:、加载xml文件。
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(META-INF/sping/knights.xml);
Knigth knight = context.getBean(Knight.class);
…使用knight…
context.close();
    2、

4、  Aop应用切面  aspect-oriented programming面向方面(切面)编程
特点:允许把遍布应用各处的功能分离出来形成可重用的组件。确保pojo的简单性。
理解:经常被定义为促使软件系统实现关注点的分离的一项技术。系统是由许多不同组件组成的,每个组件各自负责一块特定的功能,除了自身的核心功能之外,这些组件还承担着实现诸如事务管理、日志、安全这样的系统服务,这样的系统服务就被称作横切关注点(横跨系统的多个组件)。如果把这些关注点都在各自组件实现,那代码可就会有太多的的重复代码,而且具体到一个详细的组价时,本来组件是要专注于自身业务的,加入切点这样的系统服务(业务),也会造成组件逻辑的复杂程度。
   有了aop 就不一样了,aop可以把那些系统服务模块化,并且以声明的方式将这样的模块应用到需要的组件中去。这样那些本来应该专注业务的组件就可以真正的专注于自身的业务,达到组件的高内聚性。
实现:
1、配置文件

 
                expression=”execution( 需要过滤的路径的表达式)”/>
                method=”前置系统业务方法”/>
                method=”后置系统业务方法”/>
 

2、注解:补充
 

5、  使用模板消除样板式代码:例如数据库连接

你可能感兴趣的:(Spring)