Spring + Maven
创建(关键字)
- Group ID:包名(Package)
- Artifact ID:项目名字(唯一标识)
- 每一个包里面的项目的Artiface ID是唯一的;
- Version:版本
- Name:给人看的名字
- – Finish
项目管理 pom.xml 文件
-
什么是 Maven 中央仓库?
地址:http://mvnrepository.com/
作用:查询 mvn 依赖
使用:
- 进入网站
- Search 搜索
- 点进 搜索结果 - 版本
依赖选择
maven
- 复制依赖 粘贴到
pom.xml
中的<dependencies> </dependencies>
中去 - 示例:注入 Spring Framework:
<dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> <version>5.3.2</version> <type>pom</type> </dependency> </dependencies>
Spring 注入
// ApplicationContext.xml
<beans>
<bean id="person" name="human,star" class="com.…….Person">
<constructor-arg name="name" value="maxiaosan"></constructor-arg>
<constructor-arg name="age" value="18"></constructor-arg>
<constructor-arg name="food" ref="food"></constructor-arg>
</bean>
<bean id="food" class="com.…….Food"></bean>
<alias name="person" alias="person2"/>
</beans>
<alias>
加一个名字 或者是别名。
应用场景:公共开发的时候,使用SVN上传下载的代码可能会被不同人更改,使用alias
可以在不修改代码的情况下,完成代码的使用。
属性注入
-
构造器的缺点:
-
必须要有带参构造器以进行
new
- 什么是构造器?
public calss T{ private int a; public T(int a){ this.a = a; } public T(){ }; }
-
要有无参构造器以进行初始化赋值
-
加一个参数就要多一个构造器
-
对象属性 Spring 来配置对象 set 方法
<property>
标签
<bean id="person" name="human,star" class="……">
<property name="name"><value>和树不困</value></property>
<property name="age" value="18"></property>
<property name="food" ref="food"><value></value></property>
<property></property>
<property></property>
</bean>
p-namespace:
c-namespace:
Spring 中使用 ApplicationContext.xml 初始化对象
<bean id="person">
<property name="name" value="hsk"></property>
<property name="gift">
<value>
douban=http://douban.com/movie/xx.html
paoniu=100,
dushu=200
</value>
</property>
</bean>
-
优点:
- 当地址改变的时候不用进入程序中去修改代码,只要修改
xml
文件就可以了;
- 当地址改变的时候不用进入程序中去修改代码,只要修改
-
耦合
- 强耦合:A 依赖于 B,B 变化直接影响 A ;
- 弱耦合:A 依赖于 x.xml ,B 也依赖于 x.xml 文件,一旦 B 发生改变,则只要重新建一个 B 就可以了;
MVC 中,M层 先写 接口再写实现,使用的时候使用 接口调用实现,以达到解耦合的目的;
上下文 ApplicationContext.xml 中使用 Set Map List
只有单一一个元素的用<array>标签
,否则用<map> + <entrty> + key="",value=""
(有两种方式)
<property name="list">
<array>
<value>a</value>
<value>b</value>
<value>c</value>
</array>
</property>
<property name="set">
<array>
<value>a</value>
<value>b</value>
<value>c</value>
</array>
</property>
<property name="map">
<map>
<entrty key="a",value="1"></entrty>
<entrty key="b",value="2"></entrty>
<entrty key="c",value="c"></entrty>
</map>
</property>
<property name="map">
<props>
<prop key="a">1</prop>
<prop key="b">2</prop>
<prop key="c">3</prop>
</props>
</property>
总结
- 创建 Maven 项目
- 使用 Maven 项目搭建 Spring 项目
- 属性注入的集中方式
- ApplicationContext.xml 文件中构造 Set Map List 的几种方式(谁是最特殊的?)