发表于: 2019-11-25 22:51:38

1 1048


学习使用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提交代码到远程仓库

有时间的话继续进行任务一的深度思考




返回列表 返回列表
评论

    分享到