Spring(完成毕业设计后的简单回顾)

最近刚刚做完了毕业设计,在开发时用的是spring框架,做的时候踩了好多坑,又把当初的笔记给翻了翻,做一次简单的回顾

# 1.Spring是什么?

是一个开源的、用于简化企业级应用开发的应用开发框架。

    a.简化开发:
        Spring框架对很多常用的api做了简化,比如,使用Spring jdbc
        (Spring jdbc是Spring框架中的一个模块)访问数据库,不再需要
        考虑如何获取连接、关闭连接、处理异常等等。

    b.提高了系统的维护性:
        Spring容器(Spring框架中的一个模块)帮我们创建对象、并且管理
        对象之间依赖关系。这样一来,对象之间的耦合性大大降低,提高
        了系统的维护性。

    c.可以集成其它的框架:
        Spring框架提供了集成其它常用框架的功能,比如,要使用
        任务调度功能、就可以将Quartz和Spring进行集成。

# 2.Spring容器
## (1)什么是Spring容器?
Spring容器(Spring框架中的一个模块)帮我们创建对象、并且管理
对象之间依赖关系。

## (2)如何启动Spring容器?
step1.导包。

    
          org.springframework
          spring-webmvc
          3.2.8.RELEASE
    


step2.添加Spring配置文件。

    配置文件用来告诉容器,如何创建对象、如何建立对象之间的依赖关系等等。

 参考:https://www.cnblogs.com/runwulingsheng/p/5630057.html

step3.启动容器。
    
        /*
         * 启动Spring容器。
         * ApplicationContext是一个接口,定义了Spring
         * 容器的基本功能。
         * ClassPathXmlApplicationContext是一个实现了
         * ApplicationContext接口的类,该类会依据类路径
         * 来查找Spring配置文件,然后启动容器。
         */
        ApplicationContext ac = 
            new ClassPathXmlApplicationContext(
                    "applicationContext.xml");
        System.out.println("ac:"  + ac);

## (3)创建对象
### 1)方式一 使用无参构造器。

    step1.为类添加无参构造器(或者缺省构造器)。

    step2.在配置文件当中,使用bean元素进行配置。
    
    
    
    step3.启动Spring容器,调用容器提供的getBean方法来获得
        对象。

        Student stu = ac.getBean("stu1",Student.class);

### 2)方式二 使用静态工厂方法。(了解)

    
         factory-method="getInstance"/>

### 3)方式三 使用实例工厂方法。(了解)
    
    
         factory-method="getTime"/>

## (4)作用域
容器默认情况下,对于某个bean元素,只会创建一个实例。

可以修改bean的作用域,将作用域设置为"prototype",容器
就会创建多个实例。

    
         scope="prototype"/>


## (5)生命周期
容器在创建好相应的对象之后,会调用该对象的初始化方法,
在销毁该对象之前,会调用该对象的销毁方法。

可以使用init-method属性和destroy-method属性来指定
初始化方法和销毁方法的名称。

        
                 scope="prototype"/>
        
        
                 init-method="init" destroy-method="destroy"
        scope="singleton"/>

## (6)延迟加载
默认情况下,容器启动之后,会将所有作用域为"singleton"的
bean实例化。

可以将lazy-init属性值设置为true,容器启动之后,不再创建这些
实例了(只有调用了getBean方法才会创建)。

        
                 lazy-init="true"/>


    
# 3.IOC和DI
## (1)什么是IOC(Inversion Of Control 控制反转)?
对象之间的依赖关系应该由容器来建立。

## (2)什么是DI(Dependency Injection 依赖注入)?
容器可以通过调用set方法或者构造器来建立对象之间的依赖关系。

    注:
        IOC是目标,DI是手段。

## (3)使用set方法来建立依赖关系。

        
        
            
        

 

## 4. 接收请求参数

### 4.5. 【推荐】使用自定义的数据类型接收请求参数

可以自定义某个数据类型,对应所有的请求参数:

    public class User {

        private String username;
        private String password;
        private Integer age;

        // ...
    }

然后,在处理请求的方法中,直接将这个类型作为参数即可:

    @RequestMapping("/handle_reg.do")
    public String handleReg(User user) {
        System.out.println(user);
        return null;
    }

**注意:使用这种做法也必须保证提交的参数名称,与自定义类型中的属性名称,必须保持一致!如果没有保持一致,则获取到的对象的那些属性将是null值!**

### 4.6 小结

在SpringMVC中,处理请求时,有3种方式可以接收请求参数,实际使用的有:直接声明同名参数、使用自定义数据类型,如果有必要的话,这2种方式可以组合使用!

当使用同名参数接收请求参数时,如果名称不一致,可以使用`@RequestParam()`注解来确定请求参数的名称。

 

你可能感兴趣的:(Spring(完成毕业设计后的简单回顾))