欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring基础 IOC入门

程序员文章站 2022-07-12 12:58:58
...

1.体系知识
Spring基础 IOC入门

Spring替代掉的web核心知识:
监听器、过滤器(springMVC中被拦截器)、请求转发和重定向(springMVC的跳转替代)

2.Spring基础
2.1Spring简述
为什么要讲解spring:
传统项目优点:搭建容易
传统项目缺点:1、service、dao 对象都是程序员手动new 出来。(没有考虑过何时销毁、没有考虑过多线程相关内容)
2、向多个方法中加入相同代码会很麻烦。(500个方法,加入一个控制台展示语句,就需要修改500次)

为了1、更加专业地管理项目中的对象
	 2、为了将来功能扩展更加方便、快捷

Spring是什么:
Spring框架是企业使用最多的框架,没有之一。Spring是一站式框架,称之为一站式框架的原因是Spring可以整合其他框架。

Spring:
Spring IoC:控制反转技术。
对象工厂及依赖注入;
用于管理对象的创建和销毁,用于向变量中注入实例对象
Spring AOP:面向切面编程技术,为Spring事务管理打下基础。
不修改原来代码,就能把新代码切入到原来代码的执行中
(反射技术)
Spring Transaction management:Spring事务管理。
程序员自己:
try{

//提交事务

}catch(Exception e){
//回滚事务
}

只需要判断需不需要抛出异常:
抛出异常给spring,spring帮你自动回滚
没有抛出异常给spring,spring自动帮你提交事务
Throw new RuntimeException()
2.2传统项目和spring项目区别(了解)
传统项目:
优点:搭建环境容易
缺点:
1、service、dao、JavaBean创建都是由程序员自己new(何时销毁、多线程处理)
2、功能扩展特别困难(500个方法,加入相同的2行代码,修改500次)
3、框架之间的整合特别麻烦

Spring项目:
优点:1、所有的对象几乎都是由spring管理(不用管创建、销毁、多线程)
2、数据库事务的管理很轻松(只需要判断是否抛出异常给spring)
3、功能扩展特别容易(500个方法,加入相同的2行代码,修改1次)
4、框架之间的整合只需要一个配置文件即可
缺点:1、环境搭建很麻烦

2.3搭建环境-spring基础(暂无MyBatis)
Spring基础 IOC入门

2.4入门案例
2.4.1IOC简述
IOC:控制反转。 把对象的管理权力(创建、销毁)由程序员 反转给 spring容器。

2.4.2Spring项目编写
1、编写配置文件类(配置信息)
SpringConfiguration:

/**
 * spring核心配置文件
 * Configuration注解:标记当前Java类是一个spring核心配置文件类
 * ComponentScan注解:扫描spring需要管理的包
 *                    basePackages:告诉spring,spring需要管理和扫描的包
 */
@Configuration
@ComponentScan(basePackages = {"com.czxy.demo1"})
public class SpringConfiguration {
}

2、为spring注册组件
Demo1Dao:

/**
 * Component:组件。 标记当前类,由spring管理
 */
@Component("demo1Dao")
public class Demo1Dao {
    public void insert(){
        System.out.println("demo1Dao-insert");
    }
}

Demo1Service

@Component("demo1Service")
public class Demo1Service {
    private Demo1Dao demo1Dao;
    public void insert(){
        System.out.println("demo1Service-insert");
        demo1Dao.insert();
    }
}

3、组件注入 (告诉spring,创建好的对象,赋值给谁)
Demo1Service

@Component("demo1Service")
public class Demo1Service {
    @Resource(name="demo1Dao")
    private Demo1Dao demo1Dao;
    public void insert(){
        System.out.println("demo1Service-insert");
        demo1Dao.insert();
    }
}

Demo1Test

public class Demo1Test {
    @Resource(name="demo1Service")
    private Demo1Service demo1Service;

    @Test
    public void run1(){
        demo1Service.insert();
    }
}

4、加载spring配置文件,进行spring运行测试
Demo1Test

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SpringConfiguration.class})
public class Demo1Test {
    @Resource(name="demo1Service")
    private Demo1Service demo1Service;

    @Test
    public void run1(){
        demo1Service.insert();
    }
}

2.4.3入门流程讲解
Spring基础 IOC入门

相关标签: spring ioc