Spring框架(一)介绍与ioc技术

目录

基础知识

1、框架历程

2、三层服务开发

文件夹创建

一般包的命名方式

3、耦合度

一、框架的介绍

1、框架概述

2、框架优点

二、spring的核心ioc技术

1、什么是ioc

2、ioc的入门案例

工厂接口

Spring配置文件方式

实例化bean对象的三种方式


基础知识

1、框架历程

servlet ssh(ssm) springboot springcould

ssh中Struts2、Spring、Hibernate

2、三层服务开发

文件夹创建

一般包的命名方式

controller表现层

dao(mapper)持久层

service服务层

model创建实体类

utils工具类

service业务层,下面有接口和实现类的包

3、耦合度

耦合度:一对一耦合度高匹配度高,不太好改变。耦合度低则是较为灵活,一对多

一个接口可以被不同的类实现,这样就是耦合度低。

一、框架的介绍

1、框架概述

        Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003  年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

        Spring是于2003 年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。

        Spring的核心是控制反转(IoC控制反转)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。

2、框架优点

1.方便解耦,简化开发,Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理。IOC的作用。

2.AOP编程的支持,Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。(可扩展性)

3.声明式事务的支持,只需要通过配置就可以完成对事务的管理,而无需手动编程。

4.方便程序的测试,SpringJunit4支持,可以通过注解方便的测试Spring程序。

5.方便集成各种优秀框架,Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts2HibernateMyBatisQuartz等)的直接支持。

6.降低JavaEE API的使用难度,Spring JavaEE开发中非常难用的一些APIJDBCJavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。

二、spring的核心ioc技术

1、什么是ioc

IOC -- Inverse of Control,控制反转,将对象的创建权力反转给Spring框架!!

控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。

解决问题:使用IOC可以解决的程序耦合性高的问题!!Spring的工厂读取配置文件。

2、ioc的入门案例

        将创建好的类交给spring管理,并在配置文件中写好具体的配置,在测试类通过创建工厂的方式生成对象调用方法。

public class UserServiceImpl implements UserService {
    @Override
    public void hello() {
        System.out.println("Hello IOC!!");
    }
}


//测试类
public class Demo1 {
    /**
     * 入门程序
     */
    @Test
    public void run1(){
        // 使用Spring的工厂
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        // 通过工厂获得类:
        UserService userService = (UserService) applicationContext.getBean("userService");
        userService.hello();
    }
}
//src目录下创建applicationContext.xml的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
                    http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--IOC管理bean-->
    <bean id="userService" class="cn.tx.service.UserServiceImpl" />    
</beans>

工厂接口

ApplicationContext接口,工厂的接口,使用该接口可以获取到具体的Bean对象。该接口下有两个具体的实现类。 springCould  配置中心 

ClassPathXmlApplicationContext,加载类路径下的Spring配置文件。

FileSystemXmlApplicationContext,加载本地磁盘下的Spring配置文件。

Spring配置文件方式

1、id属性,Bean起个名字,在约束中采用ID的约束,唯一,取值要求:必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒号 id:不能出现特殊字符。

2、class属性,Bean对象的全路径。

3、scope属性,scope属性代表Bean的作用范围。

singleton单例(默认值),最常用的方式。

prototype多例,单例就是两次通过工厂两次调用bean产生的对象为同一个,多例就是不同的两个

request应用在Web项目中,每次HTTP请求都会创建一个新的Bean

​session应用在Web项目中,同一个HTTP Session 共享一个Bean

4、Spring初始化bean或销毁bean时,有时需要作一些处理工作,因此spring可以在创建和拆卸bean的时候调用bean的两个生命周期方法

init-method,当bean被载入到容器的时候调用init-method属性指定的方法

destroy-method,当bean从容器中删除的时候调用destroy-method属性指定的方法

实例化bean对象的三种方式

无参数构造方法:最简单的方式,要求目标类有一个无参数的构造方法。

静态工厂实例化方式:通过调用静态工厂方法来创建Bean实例,不需要创建工厂类的实例。

实例工厂实例化方式(动态工厂):通过调用实例工厂方法来创建Bean实例,需要先创建工厂类的实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值