Day8 - Spring - SSH

  • Spring 无法替代,Hibernate,Struts 可以换成其他框架
  • 纯 Spring 可以建 Java 项目,与 Struts 交互需要 Java Web 项目

jar 包 链接:http://pan.baidu.com/s/1o8JV4wy 密码:tlb9

Day8 - Spring - SSH_第1张图片

IOC - 依赖注入(控制反转)

帮开发者创建对象,新建对象可以用 ac.getBean 方法

方式1:配置 bean 标签,类必须写 get set 方法

spring-service.xml 中写类的 bean 标签




    
        
    

    
    
        
        
    

测试

public static void main(String[] args) {
    ApplicationContext ac = new ClassPathXmlApplicationContext("spring-service.xml");
    Student stu = (Student) ac.getBean("stu");
    System.out.println(stu);
}
方式2:类加注解,不用写 get set 方法

Teacher 类

package com.shuai.ioc;

import org.springframework.stereotype.Component;

/**
 * Created by shuai
 * on 2017/8/22.
 */
@Component // 看这里
public class Teacher {

    private String name;

    public Teacher() {
    }

    public Teacher(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Teacher{" +
                "name='" + name + '\'' +
                '}';
    }
}

Student 类

package com.shuai.ioc;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;

/**
 * Created by shuai
 * on 2017/8/22.
 */
//@Component
//@Service
//@Controller
@Repository // 看这里,4种都可以
public class Student { 

    private String name;

    @Autowired
    private Teacher teacher;

    public Student() {
    }

    public Student(String name) {
        this.name = name;
    }

    public Teacher getTeacher() {
        return teacher;
    }

    public void setTeacher(Teacher teacher) {
        this.teacher = teacher;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", teacher=" + teacher.toString() +
                '}';
    }
}

spring-service.xml 中 只写 context 标签





    
        
    

    
    
        
        
    

    

测试

public static void main(String[] args) {
    ApplicationContext ac = new ClassPathXmlApplicationContext("spring-service.xml");
    Student stu = (Student) ac.getBean("student");
    System.out.println(stu);
    System.out.println(stu.getTeacher());
}

AOP - 面向切面编程

  • 切面
  • 切入点
  • 连接点
  • 织入
  • 目标对象
  • 代理对象

代理:把一些操作交给别人来做

代理模式

  • 代理模式是常用的 Java 设计模式,它的特征是代理类与委托类有同样的接口
  • 代理类主要负责 为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。
  • 代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。

注意:

  • 委托类对象就是我们后面说到的 目标对象(需要【被】代理的对象)
  • 代理类对象就是我们后面说到的 代理对象(目标对象就是需要这个对象做为代理)

SSH Spring - Struts2 - Hibernate

ssh 主要是把 Spring - Struts2 - Hibernate 三大框架结合在了一起。

项目的核心文件是 spring-service.xml

  • 包含了 hibernate.cfg.xml 配置数据库的部分
  • 包含了 Struts2 配置过滤器的部分(web.xml
  • 包含了 Spring 依赖注入(IOC)和 代理模式(AOP)bean, proxy...



    
    
    

    
    
    
    
        
        
            oracle.jdbc.driver.OracleDriver
        
        
            jdbc:oracle:thin:@192.168.1.112:1521:XE
        
        
            briup
        
        
            briup
        
    


    
    
        
        
            
                true
                true
            
        

        
            
                com.shuai.bean 
            
        
    

    
    
        
    
    
        
            
            
            
        
    
    
        
        
    

Day8 - Spring - SSH_第2张图片
项目目录

你可能感兴趣的:(Day8 - Spring - SSH)