设为首页 加入收藏

TOP

spring5随笔(一)
2023-07-25 21:42:39 】 浏览:89
Tags:spring5 随笔

1、Spring

1.1、简介

  • Spring:春天----->给软件行业带来了春天!
  • 2002,首次推出了Spring框架的雏形: interface21框架!
  • Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。
  • Rod Johnson ,Spring Framework创始人,著名作者。很难想象Rod Johnson的学历,真的让好多人大吃一惊,他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。
  • spring理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架!
  • SSH : Struct2 + Spring + Hibernate !
  • SSM : SpringMvc + Spring + Mybatis!

官网: https:/lspring.io/projects/spring-framework#overview

官方下载地址: http://repo.spring.io/release/orglspringframework/spring

GitHub: https:/lgithub.comlspring-projects/spring-framework

1 <!-- https : //mvnrepository.com/artifact/org.springframework/spring-webmvc -->2<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</ artifactId>
<version>5.2.O.RELEASE</version>
    </ dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->8<dependency>
<groupId>org.springframework</groupId>
<artifactid>spring-jdbc</artifactId>
<cversion>5.2.0.RELEASE</version>
    </ dependency>

1.2、优点

  • Spring是一个开源的免费的框架(容器)!
  • Spring是一个轻量级的、非入侵式的框架!
  • 控制反转(IOC),面向切面编程(AOP) !
  • 支持事务的处理,对框架整合的支持!

总结一句话: Spring就是一个轻量级的控制反转(IOC))和面向切面编程(AOP)的框架!

2、IOC理论推导

  1. UserDao 接口
  2. UserDaoImpl 接口实现类
  3. UserService 业务接口
  4. UserServiceImpl 业务实现类

在之前的业务中,用户的需求可能会影响我们原来的代码,我们需要根据用户的需求去修改源代码,如果程序代码量十分大,修改一次的成本代价十分昂贵!

我们使用一个Set接口实现,已经发生了革命性的变化!

//利用set动态实现值的注入
public void setUserDao(UserDao userDao) {
    this.userDao = userDao;
}
  • 之前,程序是主动创建对象,控制权在程序员手上!
  • 使用了Set注入后,程序不再具有主动性,而是变成了被动的接受对象

这种思想,从本质上解决了问题,我们程序员不用再去管理对象的创建!系统的耦合性大大降低,可以更加专注在业务的实现上!这是IOC的原型!

IOC本质

控制反转loC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现loC的一种方法,也有人认为DI只是loC的另一种说法。没有loC的程序中,我们使用面向对象编程,对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给第三方,个人认为所谓控制反转就是︰获得依赖对象的方式反转了。
采用XML方式配置Bean的时候,Bean的定义信息是和实现分离的,而采用注解的方式可以把两者合为一体,Bean的定义信息直接以注解的形式定义在实现类中,从而达到了零配置的目的。

控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是loC容器,其实现方法是依赖注入(Dependency Injection,Dl)。

控制:获取对象的控制权从程序转换到容器。

反转:程序由主动创建对象变成被动接收对象。

3、IOC创建对象的方式

1.使用无参构造创建对象,默认!

2.假设我们要使用有参构造创建对象

  1. 下标赋值

    <!--第一种:下标赋值-->
    <bean id="user" class="com.ws.pojo.User">
        <constructor-arg index="0" value="ws学Java"/>
    </bean>
    
  2. 通过类型创建

    <!--第一种:通过类型创建,不建议使用-->
    <bean id="user" class="com.ws.pojo.User">
        <constructor-arg type="java.lang.String" value="qidayang"/>
    </bean>
    

    3.参数名

    <!--第三种方式:直接通过参数名创建-->
        <bean id="user" class="com.ws.pojo.User">
            <constructor-arg name="name" value="其打样"/>
        </bean>
    

总结:在配置文件加载的时候,容器中管理的对象就已经初始化了!

4、Spring配置

4.1、别名

<!--如果添加了别名,我们也可以通过别名获取这个对象-->
<alias name="user" alias="userNew"/>

4.2、Bean的配置

<!--id:bean的唯一标识符,也就是我们学的对象名
class:bean所对应的全限定名:包名+类名
name:也是别名,而且name可以去多个别名-->
<bean id="userT" class="com.ws.pojo.UserT" name="userTNew,userTNew2 u3;u4">
    <constructor-arg name="name"
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/11/11
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇98%的程序员,都没有研究过JVM重.. 下一篇springboot01

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目