您当前的位置: 首页 >  spring

大别山码将

暂无认证

  • 3浏览

    0关注

    126博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

@Spring应用(简介,注解,IOC,AOP,事务,模板对象)

大别山码将 发布时间:2022-09-04 12:20:03 ,浏览量:3

title: Springauthor: YangShentags:

  • Springcategories:
  • java学习
  • Springabbrlink: 6c92115fdate: 2021-12-08 15:27:00

Spring IoC

1)Spring简介

1.1)什么是框架
  • 源自于建筑学,隶属土木工程,后发展到软件工程领域
  • 软件工程框架:经过验证的,具有一定功能的,半成品软件
    • 经过验证
    • 具有一定功能
    • 半成品

1.2)框架的作用

1.3)Spring是什么

Spring是分层的JavaSE/EE应用full-stack轻量级开源框架

1.4)Spring的体系结构

1.5)Spring的发展历史

1.6)Spring优势 Spring的优势方便解耦,简化开发第一天方便集成各种优秀框架第一天方便程序的测试第二天AOP编程的支持第三天声明式事务的支持第四天降低JavaEE API的使用难度第四天Java源码是经典学习范例长期学习

2)IoC简介

2.1)优质程序代码的制作原则

2.2)耦合与内聚
  • 耦合(Coupling):代码书写过程中所使用技术的结合紧密度,用于衡量软件中各个模块之间的互联程度
  • 内聚(Cohesion):代码书写过程中单个模块内部各组成部分间的联系,用于衡量软件中各个功能模块内部的功能联系

  • 程序书写的目标:高内聚,低耦合
    • 就是同一个模块内的各个元素之间要高度紧密,但是各个模块之间的相互依存度却不要那么紧密

2.3)工厂模式发展史

2.4)Spring发展历程

2.5)IoC
  • IoC(Inversion Of Control)控制反转,Spring反向控制应用程序所需要使用的外部资源
  • Spring控制的资源全部放置在Spring容器中,该容器称为IoC容器

3)入门案例

3.1)案例环境说明
  • 模拟三层架构中表现层调用业务层功能
    • 表现层:UserApp模拟UserServlet(使用main方法模拟)
    • 业务层:UserService

3.2)IoC入门案例制作步骤

1.导入spring坐标(5.1.9.release)

2.编写业务层与表现层(模拟)接口与实现类

3.建立spring配置文件

4.配置所需资源(Service)为spring控制的资源

5.表现层(App)通过spring获取资源(Service实例)

3.2.1)IoC入门案例制作步骤-1

    org.springframework
    spring-context
    5.1.9.RELEASE

3.2.2)IoC入门案例制作步骤-2
public interface UserService {
	//业务方法  
	void save();
}

3.2.3)IoC入门案例制作步骤-3
public class UserServiceImpl implements UserService {
    public void save() {
        System.out.println("user service running...");
    }
}

3.2.4)IoC入门案例制作步骤-4


    
    

3.2.5)IoC入门案例制作步骤-5
public class UserApp {
    public static void main(String[] args) {
        //2.加载配置文件
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        //3.获取资源
        UserService userService = (UserService) ctx.getBean("userService");
        userService.save();
    }
}

4)IoC配置(XML格式)

4.1)bean
  • 名称:bean
  • 类型:标签
  • 归属:beans标签
  • 作用:定义spring中的资源,受此标签定义的资源将受到spring控制
  • 格式:

	

  • 基本属性:

id:bean的名称,通过id值获取bean class:bean的类型 name:bean的名称,可以通过name值获取bean,用于多人配合时给bean起别名

4.2)bean属性scope
  • 名称:scope
  • 类型:属性
  • 归属:bean标签
  • 作用:定义bean的作用范围
  • 格式:

  • 取值:
    • singleton:设定创建出的对象保存在spring容器中,是一个单例的对象
    • prototype:设定创建出的对象保存在spring容器中,是一个非单例的对象
    • request、session、application、 websocket :设定创建出的对象放置在web容器对应的位置

4.3)bean生命周期
  • 名称:init-method,destroy-method
  • 类型:属性
  • 归属:bean标签
  • 作用:定义bean对象在初始化或销毁时完成的工作
  • 格式:

  • name:对应bean中的构造方法所携带的参数名
  • value:设定非引用类型构造方法参数对应的值,不能与ref同时使用

其他属性:


  • ref:设定引用类型构造方法参数对应bean的id ,不能与value同时使用

  • type :设定构造方法参数的类型,用于按类型匹配参数或进行类型校验

  • index :设定构造方法参数的位置,用于按位置匹配参数,参数index值从0开始计数

  • 注意:一个bean可以有多个constructor-arg标签

4.8)集合类型数据注入
  • 名称:array,list,set,map,props
  • 类型:标签
  • 归属:property标签 或 constructor-arg标签
  • 作用:注入集合数据类型属性
  • 格式:

	

(1)集合类型数据注入——list


    
        itheima
        66666
    

(2)集合类型数据注入——props


    
        itheima666
        666666
    

(3)集合类型数据注入——array (了解)


    
        123456
        66666
    

(4)集合类型数据注入——set(了解)

 
     
         itheima
         66666
     

(5)集合类型数据注入——map(了解)


    
        
        
    

4.9)使用p命名空间简化配置(了解)
  • 名称:p:propertyName,p:propertyName-ref
  • 类型:属性
  • 归属:bean标签
  • 作用:为bean注入属性值
  • 格式:

  • 注意:使用p命令空间需要先开启spring对p命令空间的的支持,在beans标签中添加对应空间支持

后续课程中还将开启其他的命名空间,方式同上

  • 案例:
 

4.10)SpEL (了解)
  • Spring提供了对EL表达式的支持,统一属性注入格式
  • 类型:属性值
  • 归属:value属性值
  • 作用:为bean注入属性值
  • 格式:

  • 注意:所有属性值不区分是否引用类型,统一使用value赋值
  • 所有格式统一使用  value=“”
    • 常量  #{10}  #{3.14}  #{2e5}  #{‘itcast’}
    • 引用bean  #{beanId}
    • 引用bean属性  #{beanId.propertyName}
    • 引用bean方法  beanId.methodName().method2()
    • 引用静态方法  T(java.lang.Math).PI
    • 运算符支持  #{3 lt 4 == 4 ge 3}
    • 正则表达式支持  #{user.name matches‘[a-z]{6,}’}
    • 集合支持  #{likes[3]}
  • 案例:
 
     
     
     
                 
关注
打赏
1664364263
查看更多评论
0.0467s