Java开发之SSM轻量级框架-初始Spring框架

本文介绍了Spring框架的起源、特点和核心概念,包括控制反转(IoC)和依赖注入(DI)。详细讲解了Spring的IoC实现方式,如构造方法、工厂类以及注解方式,并展示了DI的不同实现,如setter注入、构造器注入和注解注入。最后,提到了P命名空间的使用,强调了Spring通过DI实现Java类解耦的重要性。

Spring框架

介绍
Spring框架是一个轻量级的企业框架,兴起于2003年。当时流行的传统JavaEE框架均为过于臃肿的 “重量级” 架构体系,其开发效率,开发难度和实际的性能都不能满足人们的需求。Spring中文含义为 “春天” 正如它的名称一样,Spring框架的诞生给人一种格外清新的感觉,蕴藏着勃勃生机。

概念:
Spring是由Rod Johnson开发的一个开源容器框架,提供了控制反转[IOC],依赖注入[DI],面向切面[AOP],事务管理,框架整合等功能,用于简化企业级应用开发。

特点:
1.轻量级:
Spring提供了许多服务,但这些服务默认关闭.同时,完整的Spring框架可以以在1M多大小的jar文件发布.
2.控制反转:
应用本身不负责依赖对象(被调用对象)的创建及维护,由外部容器负责依赖对象的创建及维护.
3.面向切面:
在运行时,动态的将代码切入到类的指定方法或位置上.
4.容器:
Spring包含并管理应用对象的配置和生命周期,因此Spring称为容器.

下载Spring:
http://www.springsource.org/download
https://repo.spring.io/libs-release-local/org/springframework/spring/

开发步骤:

第1步: 添加jar包
commons-logging-1.2.jar
spring-aop-5.1.2.RELEASE.jar
spring-beans-5.1.2.RELEASE.jar
spring-context-5.1.2.RELEASE.jar
spring-core-5.1.2.RELEASE.jar
spring-expression-5.1.2.RELEASE.jar
第2步: 创建Java类
创建1个实体类
备注: 测试Spring框架控制实体类[创建实体类,提供实体类对象]

public class User {
   
   
    private int id;
    private String name;
    private String Sex;
    private int age;
    private String address;
    get、set()方法

第3步: 编写Spring配置文件
配置文件名称[beans.xml,application.xml,spring.xml,spring-bean.xml等等]任意,位置不限[src下].
配置文件模板位置[参考pdf或html]

<bean id="user" class="pojo.User"/>

第5步: 测试程序

   public static void main(String[] args) {
   
   
        ApplicationContext context=new ClassPathXmlApplicationContext("application.xml");
        User user = (User) context.getBean("user");
        user.setName("小宝");
        System.out.println(user);

自定义模板文件:
在这里插入图片描述

Spring Ioc

Ioc的全称为:[Inversion of Control]即为控制反转,意为把对资源的控制权反转过来。Ioc不是一项开发技术,也不是具体功能,而是面向对象编程中的一种设计理念。

概念:
控制反转[Inversion of Control]指应用本身不负责依赖对象(被调用对象)的创建及维护,由外部容器负责依赖对象的创建及维护.

实现方式:
第1种: 构造方法:比如:

<!--第一种方式-->
    <!--user = Class.forName(pojo.User).构造函数-->
   <bean id="user" class="pojo.User"/>

第2种: 工厂类的静态方法:
创建一个工厂类,加入静态获取对象方法:

public class UserFactory {
   
   
    public static User getUser(){
   
   
        return new User();
    }
}
  <!--第二种方式:工厂类静态方法-->
   <bean id="user" class="factory.UserFactory" factory-method="getUser"/>

第3种: 工厂类的对象方法
把static去掉

public class UserFactory {
   
   
    public User getUser(){
   
   
        return new User();
    }
}
 <!--第三种方式:工厂类对象方法-->
    <bean id="userfactory" class="factory.UserFactory"/>
    <bean id="user" factory-bean="userfactory" factory-method="getUser"/>

第4种: 注解方式
a.添加context命名空间和context约束文件的地址。
b.添加<context:component-scan base-package=“包名”>。
c.在相关类上添加注解:
注解: @Controller[标注在Action类上],@Service[标注在业务类上],@Repository,@Component[无法分辨层级,比如实体]。
作用: 声明将当前类交给Spring容器管理。
多个包名之间逗号隔开。

 <!--方式4: 注解方式-->
    <!--
    开启自动扫描,Spring将扫描指定包中的类,并将@Component,@Service,@Mapper,@Controller等等标注的类,交给Spring容器管理
    注意: 默认扫描的类的Bean匿名为首字母小写的类名.
    -->
<context:component-scan base-package="pojo,test"/>
@Component //将类交给Spring容器管理 可以通过value属性自定义别名
public class User {
   
   
    private int id;
    private String name;
    private String Sex;
    private int age;
    private String address;

测试方法:

    public static void main(String[] args) {
   
   
        ApplicationContext context
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值