发表于: 2019-11-25 22:51:38
1 1046
学习使用git
参考教程:https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192
镜像下载(国外太慢了)
https://npm.taobao.org/mirrors/git-for-windows/
安装后创建用户名和邮箱
创建并切换到仓库目录
将目录初始化为git仓库
添加文件从工作区到暂存区,commit提交到分支(master)
查看git仓库状态信息和修改
查看相关日志
创建ssh 秘钥和公钥
其他命令
git checkout -- file
丢弃工作区修改("本质是还原到上次更新的分支状态")
git reset HEAD <file>
丢弃暂存区修改
git reset --hard commit_id
回退到xx版本
git rm
删除文件
深度思考
Spring的IOC有几种方式?它们之间的差别是什么,应该选择Annonation还是应该选择XML?
IoC(Inversion of Control)控制反转:程序将创建对象的权利交给第三方(spring容器)
直接实现就是DI(依赖注入)
DI的三种方式:
Set注入
1、这是最简单的注入方式,假设有一个SpringAction,类中需要实例化一个SpringDao对象,那么就可以定义一个private的SpringDao成员变量,然后创建SpringDao的set方法(这是ioc的注入入口)。
2、随后编写spring的xml文件,<bean>中的name属性是class属性的一个别名,class属性指类的全名,因为在SpringAction中有一个公共属性Springdao,所以要在<bean>标签中创建一个<property>标签指定SpringDao。<property>标签中的name就是SpringAction类中的SpringDao属性名,ref指下面<bean name="springDao"...>,这样其实是spring将SpringDaoImpl对象实例化并且调用SpringAction的setSpringDao方法将SpringDao注入。
构造器注入
1、这种方式的注入是指带有参数的构造函数注入,看下面的例子,我创建了两个成员变量SpringDao和User,但是并未设置对象的set方法,所以就不能支持第一种注入方式,这里的注入方式是在SpringAction的构造函数中注入,也就是说在创建SpringAction对象时要将SpringDao和User两个参数值传进来。
2、在XML文件中同样不用<property>的形式,而是使用<constructor-arg>标签,ref属性同样指向其它<bean>标签的name属性。
静态工厂的方法注入
1、静态工厂顾名思义,就是通过调用静态工厂的方法来获取自己需要的对象,为了让spring管理所有对象,我们不能直接通过"工程类.静态方法()"来获取对象,而是依然通过spring注入的形式获取。
2、同样看关键类,这里我需要注入一个FactoryDao对象,这里看起来跟第一种注入一模一样,但是看随后的xml会发现有很大差别。
spring 实现ioc方式:
1.使用XML配置的方式实现IOC(xml结合注解)
采用XML方式配置Bean的时候,Bean的定义信息是和实现分离的,而采用注解的方式可以把两者合为一体,Bean的定义信息直接以注解的形式定义在实现类中,从而达到了零配置的目的。
2.使用Spring注解配置IOC(纯注解)
使用传统的xml配置完成IOC的,如果内容比较多则配置需花费很多时间,通过注解可以减轻工作量,但注解后修改要麻烦一些,偶合度会增加,应该根据需要选择合适的方法。
3.自动装配
使用了ApplicationContext初始化容器后获得需要的Bean,可以通过自动装配简化。
差别:
xml配置繁琐一些,但是只要修改相关配置文件,不用修改硬编码,利于修改,
注解的方式简单快捷,后续修改不方便
使用零配置和注解虽然方便,不需要编写麻烦的xml文件,但并非为了取代xml,应该根据实例需要选择,或二者结合使用,毕竟使用一个类作为容器的配置信息是硬编码的,不好在发布后修改
JDBCTemplate和JDBC
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,
可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
而多的这个template,就是模板,是Spring框架为我们提供的.
所以JDBCTemplate就是Spring对JDBC的封装,通俗点说就是Spring对jdbc的封装的模板
JDBC的原理就是通过Connection这个类获取数据库的连接,
然后通过PreparedStatement类处理SQL语句,再通过它的.setObject方法传入数据,
最后通过方法.executeUpdate()和.executeQuery()执行更新,这就是JDBC的基本原理。
JDBCTemplate简化了步骤,替我们完成了jdbc底层的细节操作,使我们只要重点关注SQL相关的部分.
指定数据库连接参数.
打开数据库连接.
预编译并执行SQL语句.
遍历查询结果(如果需要的话).
处理抛出的任何异常.
处理事务.
关闭数据库连接
怎么实现的?
SpringIOC容器将管理数据库连接的数据源当作普通Java Bean一样管理,
然后将数据源注入封装类JdbcTemplate中,:
JdbcTemplate的dataSource属性就是注入配置的数据源
Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?
控制反转,解耦
什么要使用Interface,而不是直接使用一个实体类来完成任务?Interface和Impl这种方式的好处是什么?
接口(interface)是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。
接口是一组规则的集合,它规定了实现本接口的类或接口必须拥有的一组规则。体现了自然界“如果你是……则必须能……”的理念。
接口是一种100%纯抽象的类,是无法被初始化的类。
(1)使用Interface是为了实现接口和实现类分离,对接口进行封装,这样一个接口可以对应多个实现类
(2)同一个方法也可能不止一个类调用,这个时候用接口实现分离的方法可以减少代码重复率,耦合度更低
(3)Impl是interface的实例,使用了Impl可以减少代码的重复率。
今天做了什么
完成入学的相关事宜,写自我介绍
下载安装git,学习git的用法
对任务一深度思考部分进行解答,不懂的部分自己通过搜索的方式找到答案,并理解
明天要做什么
完成一亿的数据插入
完成对任务一代码的修改,学会用git提交代码到远程仓库
有时间的话继续进行任务一的深度思考
评论