• Spring-Java


    Spring:

    图片出处:b站黑马  ssm学习截图  

    是一个大家族 ,是一套完整的开发生态圈。可以利用这个spring全家桶快速构建企业级开发环境。

    Spring Freamwork 是其他框架的基础

    Springbot  使用了注解开发

    SpringCloud 分布式 云服务

     Spring 4架构图

     容器:

    用来管理Java对象

    AOP:

    面向切面编程

    Aspets:

    Aop的实现 

    Data Access :

    数据访问

    Spring核心概念: 

    为什么出现这些框架?

    以前的 开发  代码耦合度太高 ,牵一发而动全身,耗费成本太高。

    控制反转:IOC

    对象的创建控制权发生了转移,Spring提供了容器,实现了对象的创建,由主动创建对象 到ioc创建对象并且初始化,这里创建的对象统一称为bean。 

    依赖注入:Di

    例如service和dao的bean就可以使用依赖注入

    IOC DI入门:

    我们先

    导入依赖

    这里导入org.sprinngframework的包  导入成功后

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <modelVersion>4.0.0</modelVersion>
    6. <groupId>org.example</groupId>
    7. <artifactId>springtext</artifactId>
    8. <version>1.0-SNAPSHOT</version>
    9. <dependencies>
    10. <dependency>
    11. <groupId>org.springframework</groupId>
    12. <artifactId>spring-context</artifactId>
    13. <version>6.0.1</version>
    14. </dependency>
    15. </dependencies>
    16. <properties>
    17. <maven.compiler.source>8</maven.compiler.source>
    18. <maven.compiler.target>8</maven.compiler.target>
    19. </properties>
    20. </project>

     建包

    这里我只分了业务层和dao层  随便写的接口和实现类

    这个具有内容自己写就行  随便写两个方法  去实现  只要能帮助你理解就行

    上面提到 我们用bean容器 来管理 和创建对象 实现解耦的作用 

    所以导入依赖之后

    先来配置bean

    在resource下新建xml 导入依赖成功的话  选springconfig就行

     

    这里我们命名为

    applicationContext.xml

    在文件里创建即可  class指向他所在的包,也就是你要管理的对象

    这里我们新建DAO和service的

    id就是它们的标识

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    5. <!--
    6. 导入包后 开始配置bean
    7. -->
    8. <bean class="My.Dao.Service.Read" id="Read">
    9. <property name="Read" ref="read1"></property>
    10. </bean>
    11. <bean class="My.Dao.Service.Read" id="read1"></bean>
    12. </beans>

    建个测试类测试一下:

    可以看到 无需用new来创建对象 而是将控制权移交给了ioc容器

    1. package My.Dao.test;
    2. import My.Dao.Service.Read;
    3. import org.springframework.context.ApplicationContext;
    4. import org.springframework.context.support.ClassPathXmlApplicationContext;
    5. public class test {
    6. public static void main(String[] args) {
    7. ApplicationContext cs=new ClassPathXmlApplicationContext("appliactionContext.xml");
    8. //拿到bean对象
    9. Read R= (Read) cs.getBean("read");
    10. //调用方法
    11. R.reading();
    12. }
    13. }

    完成控制权的转移之后 我们为了实现充分解耦  就需要使用

    依赖注入

    将 bean相关的依赖对应起来

    这里对业务层 所需要的dao进行依赖注入

    按照传统的方式 这里的业务层是依托于Dao层 以前都是new对象来创建dao的实例

    那么这里利用依赖注入只需要封装dao层  给它设置一个set方法即可

    1. package My.Dao.Service;
    2. import My.Dao.BaseDap;
    3. public class Read implements reder{
    4. public void setBs(BaseDap bs) {
    5. this.bs = bs;
    6. }
    7. private BaseDap bs;
    8. @Override
    9. public void reading() {
    10. System.out.println("正在阅读");
    11. }
    12. }

    在applicationContext.xml里进行如下操作

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    5. <bean class="My.Dao.Service.Read" id="Read">
    6. <property name="Read" ref="baseDap">
    7. property>
    8. bean>
    9. <bean class="My.Dao.BaseDap" id="baseDap">
    10. bean>
    11. beans>

    注入之后就完成了解耦  这时候再去跑一下

    测试代码

    1. package My.Dao.test;
    2. import My.Dao.Service.Read;
    3. import org.springframework.context.ApplicationContext;
    4. import org.springframework.context.support.ClassPathXmlApplicationContext;
    5. public class test {
    6. public static void main(String[] args) {
    7. ApplicationContext cs=new ClassPathXmlApplicationContext("appliactionContext.xml");
    8. Read R= (Read) cs.getBean("read");
    9. R.reading();
    10. }
    11. }

    这里就完成了初步的入门 


     Bean配置:

    基础配置已经在上面给出

    下面是别名配置:

    即 在配置文中对bean 的name 设置多个参数  就可以通过别名调用

    bean的作用范围

    这里的作用范围默认的单例  

    Bean的实例化

    创建bean的三种方式:

    构造方法

    静态工厂创建bean 

     实例工厂造对象:

     factoryBean构造对象

  • 相关阅读:
    Kubernetes/k8s的核心概念
    基于WPF技术的换热站智能监控系统09--封装水泵对象
    基础中的基础!吴恩达deeplearning.ai:如何搭建一个神经网络
    C语言冒泡排序
    flutter开发实战-应用更新apk下载、安装apk、启动应用实现
    浅谈一下:Java当中的构造方法
    Netlogo 之Extension 之 Table 扩展实现Map 键值对功能
    音视频直播开发问题分析总结 -- 花屏&绿屏
    windows本地认证
    多测师肖sir_高级金牌讲师__git讲解
  • 原文地址:https://blog.csdn.net/m0_68711597/article/details/133826390