一、安装使用maven
Maven是Java平台下的一款项目构建和依赖管理的自动化管理工具。安装使用maven,简化了各种包的导入,使用Maven之前的传统web项目必须将该项目所依赖的一些jar 包添加到工程目录中,否则项目就不能运行,从而导致了工程很大。同样的项目,如果我们使用Maven 工程来构建,会发现总体上工程的大小会少很多。
两个经典作用:
依赖管理:maven 工程中不直接将jar 包导入到工程中,而是通过在pom.xml 文件中添加所需jar 包的坐标,这样就很好的避免了jar 直接引入进来,在需要用到jar 包的时候,只要查找pom.xml 文件,再通过pom.xml 文件中的坐标,到一个专门用于”存放jar 包的仓库”(maven 仓库)中根据坐标从而找到这些jar 包,再把这些jar 包拿去运行。
那么问题来了
项目的一键构建:通常的项目,往往都要经历编译、测试、运行、打包、安装 ,部署等一系列过程。什么是构建?
指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理,这个过程称为构建。
一键构建指的是整个构建过程,使用maven 一个命令可以轻松完成整个工作。
二、依赖注入
依赖注入是一个过程,在这个过程中,对象仅通过构造函数参数、工厂方法的参数或在对象实例被构造或从工厂方法返回后在对象实例上设置的属性来定义它们的依赖关系(即它们所使用的其他对象)。
三、注入形式
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--使用name也可以设置别名 使用 空格或者,或者; 设置多个别名 --> <!--使用import可以导入其他spring的xml配置文件 <import resource="spring-ioc.xml"></import>--> <!--***************************依赖注入 Begin*************************************--> <!--基于setter方法的依赖注入 注意: name属性对应的set方法的名字 比如 setId -> name="id" setXxx -> name="xxx" --> <bean class="bobo.User" id="user"> <property name="id" value="20"/> <property name="name" value="小波"/> <property name="realname" value="吴彦祖"/> </bean> <!-- #####################分割线###################--> <!--基于构造函数的依赖注入 1. 基于name属性设置构造函数参数 2. 可以只有value属性 3. 如果省略name属性 一定注意参数顺序 4. 如果参数顺序错乱 可以使用name, 还可以使用index:设置参数的下标 从0开始 还可以使用type: 在错乱的参数类型一致的情况下不能使用 --> <bean class="bobo.User" id="user2"> <constructor-arg name ="id" value="20"/> <constructor-arg name="name" value="小波波"/> <constructor-arg name="realname" value="成龙"/> </bean> <!-- ####################分割线 ############### --> <!-- 复杂数据类型的依赖注入--> <bean class ="bobo.Person" id="person"> <property name="id" value="1"></property> <!-- 设置null--> <property name="name"><null></null></property> <property name="genter" value=""></property> <!-- 引用外部bean <property name="wife" ref="wife"></property>--> <!-- 使用内部bean 依赖注入其他bean--> <property name="wife"> <bean class="bobo.Wife" id="wife"> <property name="age" value="18"/> <property name="name" value="你好帅"/> </bean> </property> <!--list 注入: 如果泛型是基本数据类型<value> 如果泛型是bean <bean>--> <property name="hobbies"> <list> <value>唱歌</value> <value>跳舞</value> </list> </property> <!--map 注入 如果value是基本数据类型<entry key="1" value="Java"></entry> 如果value是bean value-ref--> <property name="courese"> <map> <entry key="1" value="java"></entry> <entry key="2" value="数据库"></entry> </map> </property> </bean> <!--使用p命名空间简化基于setter属性注入XML配置 p:按Alt+Enter 自动加上命名空间 设置基本数据类型 或者p:wife-ref 引用外部bean 如果有集合类型 就不支持, 需要额外配置 <property> --> <bean class="bobo.Wife" id="wife1" p:age="18" p:name="wuhu"/> <bean class="bobo.Person" id="person2" p:wife-ref="wife1"> <property name="hobbies"> <list> <value>唱歌</value> <value>跳舞</value> </list> </property> </bean> <!--使用c命名空间简化基于构造函数的XML--> <bean class="bobo.Wife" id="wife2" c:age="20" c:name="hhh" /> <!-- ###############依赖注入############--> </beans>