Maven是什么?Maven是java语言开发的,主要用于项目管理。他能干什么?他的功能有很多,但是通常而言,我们最尝使用他的两个功能:项目构建 和 依赖管理。POM是什么?全称Project Object Model,项目对象模型。Maven将一个项目的开发以及管理抽象出一个对象模型,简称POM。不论你是要开发、测试、打包、部署…… 在这个模型里都有对应的方法。pom.xml又是什么?这个文件就是POM对象模型的具体实现。如,最基本的配置,描述自己的项目: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"&g
什么是JdbcTemplate?他由Spring框架提供。了解JdbcTemplate 需要分为两个部分:JDBC 和 TemplateJDBC 全拼 Java DataBase Connection,是一个使用java语言访问数据库的技术Template 中文译作:模板。何为模板?模板由两部分组成,一部分是固定的,一部分是可变的。如:做饭。固定的是:开火,关火。可变的是:放入青菜,还是肉,是爆炒,还是清蒸…… 反正不论如何,做饭就要开火、关火。我们很烦这个,开火、关火这个事情能不能智能自动化呢?JdbcTemplate 就类似于做饭,而且他帮我们把开火,关火自动化了,再也不用程序员厨子关心了,程序员转行的厨子,上来就是甩锅炒鱿鱼……JDBC暗黑时代没有JdbcTemplate的时候,我们要执行一个SQL,得经过好几个一模一样的步骤初始化驱动Class.forName("com.mysql.jdbc.Driver");与数据库建立连接关系,获取Connection对象Connection conn = DriverManager.getConnection("jdbc:mysql://
初学Spring,会被其中一些晦涩到莫名其妙在名词搞到头大,理一理他们的关系,一下就豁然开朗了。beanbean是啥?bean是对象,在Java中,我们叫他java bean。到了Spring中,就得入乡随俗,我们叫他Spring bean。更确切的说,Spring bean是被Spring IoC容器所管理的bean对象。IoC第二个概念,IoC 又是个什么高科技? IoC(Inverse of Control)中文译作:控制反转。控制反转这个其实还好理解,就是控制权利发生了易主。具体到Spring中,以前我们创建对象是这样的:Foo foo = new Foo();现在创建对象这个控制权由Spring接管了,我们可以直接拿起对象就用,因为Spring已经帮我们创建好对象了。一句话总结:对象的创建权从程序员手中反转到了Spring手中Spring IoC容器要理解Spring IoC容器,需要先明白容器就是存取东西(对象)的地方。Spring IoC容器中存放的正是一个个的Spring bean对象。似懂非懂?是不是想知道Spring IoC容器的具体形态,也就是Spring IoC
Hibernate 实体类对象有三种状态:瞬时态(也叫临时态,自由态)、持久态、游离态(也叫脱管态)三种状态的特点瞬时态(Transient) :没有持久化标识OID,没有被纳入到 Session 对象的管理持久态(Persistent):有OID标识,在Session 对象的管理中游离态(Detached ) :有OID标识,脱离了Session 对象的管理注意:以下的session,是Hibernate工厂中生产的session,不是servlet中的。SessionFactory sf = new Configuration().configure().buildSessionFactory(); Session session = sf.openSession();三种状态的获取和转换直接获取方式获取瞬时态 new Foo()获取持久态 session.get()游离态不能直接获取状态转换瞬时--->持久 session->save()瞬时--->游离 session->setXxx()持久--->瞬时 session->delete()持久
JAVA spring 中的事务传播有点类似于JS中的事件冒泡机制(这里是举例子,便于理解,不要画等号)。在JAVA Spring中传播主要解决事务一致性问题。假如,现在有两个方法:A.funa 和 B.funb,在funa中调用funb。// demo.java A.funa(){ B.funb(); }PROPAGATION_REQUIRED (默认级别)设:funb()传播级别是 PROPAGATION_REQUIREDfuna()有事务,funb()加入该事务; fua()无事务,funb()为自己创建一个新事务PROPAGATION_SUPPORTS设:funb()传播级别是 PROPAGATION_SUPPORTSfuna()有事务,funb()加入该事务; fua()无事务,funb()以非事务方式运行PROPAGATION_MANDATORY设:funb()传播级别是 PROPAGATION_MANDATORYfuna()有事务,funb()加入该事务; fua()无事务,抛异常PROPAGATION_REQUIRES_NEW设:funb()传播级别是 PROPA
Minghui
却道天凉好个秋!
CC BY-NC-SA 4.0