• 关于Spring IOC的学习和理解


    面向对象——三层架构(表现层、业务层、持久层)

    三层架构:即表现层、业务层、持久层。

    ① 持久层:采用DAO模式,建立实体类和数据库表映射(ORM映射)。也就是哪个类对应哪个表,哪个属性对应哪个列。持久层

                   的目的就是,完成对象数据和关系数据的转换。

    ② 业务层:采用事务脚本模式。将一个业务中所有的操作封装成一个方法,同时保证方法中所有的数据库更新操作,即保证同时成

                   功或同时失败。避免部分成功部分失败引起的数据混乱操作。

    ③ 表现层:采用MVC模式。

                   M称为模型,也就是实体类。用于数据的封装和数据的传输。

                   V为视图,也就是GUI组件,用于数据的展示。

                   C为控制,也就是事件,用于流程的控制

    设计原则:

               业务层接口的设计原则:一个实体类一个接口,一次提交一个业务方法。业务方法的参数来自表现层。

               持久层接口的设计原则:一个实体类一个接口,一次数据库操作一个持久方法。

    File不属于流,它只是用来屏闭不同文件系统,用来统一 描述文件的实体BEAN,new File时给它传入文件名称或是路径,它就会去根据参数查找对应的文件属性然后封装 成实体。用来处理判断该路径是一个文件还是路径,文件或路径的权限,修改时间等等,路径的子路径list等等目录操作。
    File不属于文件流,只能代表一个文件或是目录的路径名而已.
    而FileInputStream关注的是文件的内容,是用来进行文件读写等操作的二进制流类。大多数情况下,构造FileInputStream 时传递一个File对象做参数,也可以直接传递String的文件路径。

    关于变量初始化的问:现在的理解是,如果是全局变量默认初始化,局部变量必须要初始化,或者直接赋值我也觉得可以(但是一开始就直接赋值可能后面用到了就不太好了)


    serclet:https://www.cnblogs.com/xdp-gacl/p/3760336.html

    --
    setter和getter方法的理解:
    其实说得明白点吧,这只是java类(特别的很多时候是一个javabean)的两个方法,以提供对某个变量(字段)设置与访问的两个入口,在很多时候也正如你说,跟定义成public是没有两样的,具体的原因在于:
    (1)由于很多框架都是调用这两个方法来实现沟通,这是一种习惯了。
    (2)get/set方法也不一定只是简单的作一个赋值,或一个返回值吧,在这里可以作一些权限的控制,比如不是每个角色都可以赋值的。再比如返回的值不一定是值本身,可以是经过处理了的,比如加密,这用public定义是不能作到的。

    关于@Autowired的的详解,清晰,透彻
    https://www.cnblogs.com/caoyc/p/5626365.html

    @component是Spring中注解注解配置的一种方式(个人觉得也是工作最常用最简单的方法),作用就是代替new对象的过程,实际上就是实例化一个对象,将其放到IOC容器中,当别人需要这个对象的时候,通过@Autowire将改对象注入到自己的类中,通过Autowire 在容器中找到该对象,不需要new,总的来说,就是@component负责new出来对象,放入容器中,@Autowire负责用到时取出来,Autowire是通过类型来取,就是该实现类如果只有一个就会直接取该类的对象,如果有多个类,则通过名字来取,如果没有就会报错

    具体案例见链接:https://www.cnblogs.com/caoyc/p/5626365.html

    扩展:如果不通过@Autowired的,若需要通过Setter来注入对象:

    用@Autowired,用@Autowired的则替代setter,方便简单,但是要在xml文件中配置相关参数

    package com.proc.bean.service;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import com.proc.bean.repository.UserRepository;
    
    @Service
    public class UserService {
    
        @Autowired
        private UserRepository userRepository;
        
        public void save(){
            userRepository.save();
        }
    }
    

     用Setter:

    package com.proc.bean.service;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import com.proc.bean.repository.UserRepository;
    
    @Service
    public class UserService {
       
        private UserRepository userRepository;
    //这儿就是setter方法,同样可以得到
    userRepository对象。
      public int getuserRepository() 
      {
        return userRepository;
      }

      public void setuserRepository(UserRepository userRepository)
      {
        this.userRepository= userRepository;
      }
     
    public void save()
      {
        userRepository.save();
      }
    }

    Spring的构造注入、setter注入以及自动装配链接:https://blog.csdn.net/lu677521/article/details/79017912


    一、Bean是啥

    1、Java面向对象,对象有方法和属性,那么就需要对象实例来调用方法和属性(即实例化);

    2、凡是有方法或属性的类都需要实例化,这样才能具象化去使用这些方法和属性;

    3、规律:凡是子类及带有方法或属性的类都要加上注册Bean到Spring IoC的注解;

    4、把Bean理解为类的代理或代言人(实际上确实是通过反射、代理来实现的),这样它就能代表类拥有该拥有的东西了

    以Bean为核心的IOC/DI机制:
    总述理论核心:在spring中,所有的对象都会被spring核心容器管理。一切对象统称为Bean。
    Spring容器可通过XML配置文件或者注解去管理这堆Bean。bean是一个组件

    二、注解分为两类:

    1、一类是使用Bean,即是把已经在xml文件中配置好的Bean拿来用,完成属性、方法的组装;比如@Autowired , @Resource,可以通过byTYPE(@Autowired)、byNAME(@Resource)的方式获取Bean;

    2、一类是注册Bean,@Component , @Repository , @ Controller , @Service , @Configration这些注解都是把你要实例化的对象转化成一个Bean,放在IoC容器中,等你要用的时候,它会和上面的@Autowired , @Resource配合到一起,把对象、属性、方法完美组装。

  • 相关阅读:
    ASP.NET之电子商务系统开发1(数据列表)
    ASP.NET之电子商务系统开发2(购物车功能)
    MFC之列表控件
    自己动手写操作系统(二)一个最小的“操作系统”
    自己动手写操作系统(一)环境准备
    windows常用快捷键
    MFC之下拉框
    链表反转&交换链表结点
    TinyHttp前置知识
    单链表基本操作总结
  • 原文地址:https://www.cnblogs.com/cherishforchen/p/9836399.html
Copyright © 2020-2023  润新知