• spring学习笔记_spring入门


    导入spring核心架包:

    • 标号一:日志需要的架包
    • 标号而:spring的核心架包

     spring核心IOC的实现和理解:

    关键就是配置applictionContext.xml文件

    在applicationContext.xml文件中引入bean schema约束

    <?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">
    </beans>

    当然如果使用的是Sring Tool Suite工具编程,可以之间new里面找到一个 Spring Bean config file自动生成该约束

    问题:发现引入规范约束后,没有关联对应的配置,原因是:

    配置本地提示:点击eclipse属性——>选择XML Catalog

     基础配置弄好了,可以尝试测试第一个Bean的创建了:在上面的applictionContext.xml中输入下列代码------>

    <!-- 
            bean:是spring工厂帮你new的一个对象(机制:反射机制)
            class:要new的对象的类型的字符串表示形式(一定全类名)
            id/name:标识对象的名字,用来获取bean对象用的标识。习惯上,这个名字命名为接口的名字首字母小写
         -->
        <bean id="userDao"  class="com.igeek.spring.UserDaoImpl"/>

    下面就要在他的逻辑实现类中测试啦

    public class UserServiceImpl implements IUserService{
        
        public void login() {
            System.out.println("UserServiceImpl-service层被调用了。。。");
            //spring的配置方式,IOC控制反转
            //构建一个spring的工厂,使用applicationContext.xml(spring的核心配置文件)获取对象
            ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
            //从spring工厂中使用对象的标识id获取对象,这里就是ApplicationContext.xml文件中的  <bean id="userDao" class="com.igeek.spring.UserDaoImpl"/>
            IUserDao userDao = (IUserDao) ac.getBean("userDao");
            userDao.findByUsernameAndPassword();
        }
    }

    那如何理解IOC和DI呢?

    IOC即是:控制反转,就是在传统代码是一层一层new对象来调用,高度耦合的情况下,为避免高耦合而设计的解决方案:将获得依赖对象的过程反转了,就是将你的new过程交给spring容器(IOC容器)去操作

    而DI:即依赖注入---->.就是将获得依赖对象的过程由自身管理变成由IOC容器主动注入

    简而言之就是DI将IOC更加的操作简单化,全程由spring容器为你解决new对象的过程

    下面就看看是怎么DI的:

     <!-- 
        ioc
            bean:是spring工厂帮你new的一个对象(机制:反射机制)
            class:要new的对象的类型的字符串表示形式(一定全类名)
            id/name:标识对象的名字,用来获取bean对象用的标识。习惯上,这个名字命名为接口的名字首字母小写
         -->
        <bean id="userDao"  class="com.igeek.spring.UserDaoImpl"/>
        <!--
        service 
        di:必须双方都是bean:在创建service的时候,主动将dao的依赖对象注入交给serivce
         -->
        <bean name="userService" class="com.igeek.spring.UserServiceImpl">
            <!-- property:
            setter属性注入
                * name:setter属性的名字,和类一致。如果setXxx,这里xxx,setUserDAO-userDAO
                * spring会自动调用setUserDao(IUserDao userDao)方法
                * ref:spring容器中定义的bean(对象)的名字
             -->
            <property name="userDao" ref="userDao"/>
        </bean>

    BeanFactoryFactoryBean的区别?

    BeanFactory:是一个工厂(其实是构建了一个spring上下文的环境,容器),用来管理和获取很多Bean对象,例如:加载applicationContext.xml文件。

    FactoryBean:是一个Bean生成工具,是用来获取一种类型对象的Bean,它是构造Bean实例的一种方式。

  • 相关阅读:
    Web中Servlet简单总结
    JavaSE进阶的面试题
    多线程简单总结
    Java基础集合简单总结
    内部类和Lambda
    多态
    接口
    继承
    uni-app 中uCharts
    vue 组件传值
  • 原文地址:https://www.cnblogs.com/ylblikestudyJava/p/12425770.html
Copyright © 2020-2023  润新知