A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 陈文老师 于 2017-11-22 11:21 编辑

要毕业了?要找工作啦?开不开心?紧不紧张?回首黑马这半年,感觉自己是不是被自己的努力所感动,然而仔细想想学了很多,马上要出去找工作了却脑子一片空白。重庆JavaEE就业2期龙师兄毕业后在寝室闭关修炼半个月(当然不建议大家这样做,一定要趁着你刚毕业,什么都知道赶紧出去找工作,越到后面越忘得多)个人总结了咱们6个月以来所学的一些基础框架和淘淘项目的一些核心技能点,要复习的,赶紧看看吧!但是答应我,看完后赶紧出去面试哟~~~不要怂,就是干!!!
【基础框架篇】-【Spring】
1      Spring(容器)、
1.1      什么是spring?
1)        Spring是一个分层的一站式轻量级开源框架
2)        作用:
1.    Spring致力于提供一种方法管理你的业务对象
2.    Spring的主要目的是使用javaEE易用和促进良好的编程习惯
3.    Soring致力于J2EE应用的各层的巨额节方案,而不是仅仅专注于某一层的方案,spring不是想取代现在已有的框架,而是与他们整合,使得其功能更加的强大。
3)        核心容器
1.    Core和beans:提供了spring最基础的功能,提供IOC(控制反转)和DI(依赖注入)。重要对象BeanFactory
2.    Context:基于core和beans来构建的,它提供了用一种框架风格的方式来访问对象,context封装包继承了beans包的功能,还增加了国际化,事件传播,资源装载,以及透明创建上下文,核心接口applicationContext
3.    Expression Language:表达式语言,提供了在运行期间查询和操作对象图的强大功能。支持访问和修改属性值,方法调用,支持访问及修改数据组、容器和索引器,命名变量,支持算法和逻辑运算,支持从spring容器获取bean,也致辞列表投影,选择和一般的列表聚合等。
4)        数据访问、集成部分
1.    对于jdbc:提供了对jdbc的抽象,消除了冗长的jdbc编码和解析数据库厂商特有的错误代码
2.    对于orm(对象关系映射):提供了常用的“对象/关系”映射api的集成层,包括   JPA、JDO、Hibernate和MyBatis。利用ORM封装包,可以混合使用多由spring提供的特性进行对象关系映射。
3.    对于oxm:提供一个支持object(对象 )和XML进行映射的抽象层,
4.    对于jms(消息):提供一套“消息生产者、消费者”模板用于更加简单的使用jms
5.    对于Trancation(事务):支持程序通过简单声明事务管理,只要是spring管理对象都能得到spring管理事务的好处,即使是pojo,也可以为他们提供事务
5)        面向切面的使用(AOP)
1.    单独的aop模块:提供了符合AOP联盟规范的面向切面的编程思想,让你可以定义如方法拦截和切入点之类的
2.    对aspects模块:提供了aspectJ的集成。
3.    对于instrumentation模块,提供一些类级别的工具支持和类加载器级的实现,可以在一些特定的应用服务器中使用
6)        IOC(inversionof controller)控制反转
1.    在程序中所说的IOC其实简单的说,就是原来由我们自己实例化的对象现在就有spring容器来执行
7)        DI(dependencyinjection)依赖注入
1.    在spring框架扶着创建bean对象时,动态将依赖对象注入到bean组件中。
8)        Ioc和di的区别
1.    本质区别,ioc是创建实例权利交由spring管理,di是在spring创建实例的过程中对象所依赖的属性通过配置注入对象中。
9)        Bean的作用域
1.    在bean声明时 它有一个scope属性,它是用于描述bean的作用域
2.    Scope的取值有
a)      Singleton:单列 代表在spring ioc容器中只有一个这样的bean实例
b)      Prototype:多例 每一次从spring容器中获取时,都会返回一个新的实例
c)       Request:在web开发中,将bean对象存储到request域中
d)      Session:在web开发中,将bean对象存储到session域中
3.    生命周期:
10)     Aspectj框架
1.    Spring整合aspectj后可以使用aspectj语法,可以简化开发
2.    Aspectj它是一个第三方框架,spring从2.0以后使用能够aspectj框架的部分语法
3.    Aspectj框架定义的通知类型
a)      前置,before
b)      后置,afterReturnng
c)       环绕,Around
d)      抛出,AfterThrowing
e)      引介,declarParents
f)       最终通知,after,不管是否异常,都会执行。
11)     Spring代理方式
1.    Jdk的代理
2.    Cglib动态代理
3.    Spring框架默认情况下,会对有借口的类使用jdk的代理,没有接口的类使用cglib代理
4.    如果现在对目标要使用cglib代理(不考虑是否有接口)?
a)      只需要将prox-target-class设置为true如:<aop:configproxy-target-class=”true”>
12)     Spring事务管理
1.    Spring事务管理4个优点
a)      提供一致的对于不同事务管理的api
b)      支持声明式事务管理(重点)
c)       编程事务管理
d)      优秀的整合与spring的数据访问
2.    事务的‘四个特性
a)      原子性
b)      一致性
c)       隔离性
d)      持久性’
3.    Spring事务管理主要提供了三个接口来完成
a)       PlatformTransactionManager,这是一个事务管理器,可以用来选择相关的平台(如:jdbc,hibernate,jpa等)
b)       TransactionDefinition,它定义事务的一些相关信息,如:隔离,传播,超时,只读
A.    隔离:如果不考虑事务的隔离性会存在脏读(一个事务读取到另一个事务的未提交数据),不可重复读(一个事务读到另一个事务提交的数据---主要指update,会导致两次读取的结果不一致)和虚读(一个事务读到另一个事务提交的数据---主要指insert,会导致两次读取结果不一致)问题
                                                 i.      Read_UNCOMMITTED:不能解决问题,会发生脏读,不可重复读,虚读
                                                ii.      READ_COMMITTED:可以解决脏读,会产生不可重复读,虚读(oracle数据库默认)
                                               iii.      REPEATABLE_READ:可以解决脏读,不可重复读,会产生虚读(mysql默认)
                                               iv.      SERIALIZABLE:串行化,可以解决所有问题,效率低下
B.    传播: 它解决的是两个被事务管理的方法相互调用问题,它与数据库没有关系,是程序内部维护的问题,常用的三种
                                                 i.      PROPAGATION REQUIRED,默认值,两个操作处于同一事务,如果之前没有事务,新建 一个事务
                                                ii.      PROPAGATION REQUIRES NEW,两个操作处于不同事务
                                               iii.      PROPAGATION NESTED,它是一种嵌套事务,它是使用SavePoint来实现的,事务回滚时可以回滚到指定的savepoint,注意,它只对datasourceTransactionManager有作用
C.    超时: 默认是-1,它使用的是数据库默认的超时时间
D.    只读状态:它的值有两个true/false,一般是在select操作时
c)       TransactionStatus,它只要描述事务的运行状态
1.2      为什么要使用spring?
1)        Spring的优点:
1.    方便解耦,简化开发
a)      Spring’就是一个大型工厂,看一看将多由对象创建和依赖关系维护,交给spring管理
2.    Spring提供面向切面编程,看看呀方便的实现对程序进行权限拦截、运行监控等功能
3.    声明式事务管的支持,只需要通过通过配置就可以对事务的管理,无需自己动手编程
4.    方便程序的测试,spring对junit4支持,可以通过注解方式方便的测试spring’程序
5.    方便集成各种优秀的框架
6.    降低了javaEE api的使用难度
1.3      怎么使用spring?
1)        spring开发环境搭建
1.    导入相关JAR
2.    在web.xml中配置ContextLoaderListener,配置applicationContext.xml的位置
3.    Spring自身的AOP配置(切点+通知确定切面)
a)      编写目标类
b)      编写通知类
c)       在applicationContext.xml中配置目标bean,需要指定目标类
d)      配置通知bean,需要指定通类
e)      配置切点bean,需要指定对那些方法增强
f)       配置切面bean,需要指定通知和切点
g)      配置生成的代理对象bean,需要指定目标,切面,被代理类的接口
4.    使用aspectj切点传统配置
a)      配置目标类bean,指定目标类
b)      配置通知类bean,通知是需要实现指定接口
c)       使用<aop:config>标签完成切面与切点的声明,
A.    需要指切点<aop:pointcut>,
B.    需要指定切面<aop:advisor>,在指定切面中指定切点和通知
C.    需要定义切面<aop:aspect>,声明切面里需要配置通知类型如前置通知<aop:before method=”xxxx” pointcut=”execution(返回值类型 包名 类名.方法名(..))”>
d)      每一个通知中定义切点,工作量大,不方便维护,我们可以使用@Pointcut来声明切点,如:@Pointcat(“execution(* *.s*(..))”),注解声明通知类型,如:@Before(“mypointcut”)
5.    Spring jdbc Template
a)      配置spring内置的连接池DriverManagerDataSource,需要指定驱动,url,用户名和密码
b)      配置一个JdbcTemlate模板,需要指定连接池
c)       Template的使用
A.    在需要的服务类中注入模板对象
B.    直接调用模板中的方法如execute()执行sql的方法
d)      使用C3p0,只需要换DriverManagerDataSource成ComboPolledDataSource
e)      使用druid同上
6.    Spring事务管理
a)      事务管理方式
A.    编码法案,不建议使用,它具有侵入性,在原有的业务代码上去添加事务管理代码
B.    声明式事务控制,基于aop对目标进行代理,添加around环绕通知,这种方案不具有侵入性,不需要修改原来的业务代码。
C.    配置声明式事务管理
                                                 i.      在applicationContext.xml文件中添加aop与tx的名称空间
                                               ii.      配置事务声明,DataSourceTransactionManager,需要指定连接池
                                              iii.      配置通知,spring提供了一个transactionInterceptor来完成增强,对于这个增强我们可以使用spring为我们提供的一个标签<tx:advice>来玩成操作
                                              iv.      配置切面,因为使用传统的spring的advice,需要使用<aop:advisor>指明切点和通知
D.   基于注解的方式开启事务:只需要在类或者方法上添加@Transaction来声明事务管理,在applicationContext.xml文件中配置事务注解扫描开启器注解事务控制<tx:annotation-driven transaction-manager=”transactionManager”>
【基础框架篇】-【Hibernate】

2 个回复

正序浏览
温故而知新
回复 使用道具 举报
果断收藏起来啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马