【框架系列02】使用Maven搭建Spring项目+ApplicationContext上下文中使用Set、Map、List

Spring + Maven





创建(关键字)


  • Group ID:包名(Package)
  • Artifact ID:项目名字(唯一标识)
  • 每一个包里面的项目的Artiface ID是唯一的;
  • Version:版本
  • Name:给人看的名字
  • – Finish




项目管理 pom.xml 文件


  • 什么是 Maven 中央仓库?

    地址:http://mvnrepository.com/

    作用:查询 mvn 依赖

    使用:

    • 进入网站
    • Search 搜索
    • 点进 搜索结果 - 版本
    • 依赖选择 maven
    • 复制依赖 粘贴到 pom.xml中的 中去
    • 示例:注入 Spring Framework:
    <dependencies>
      
      <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>springartifactId>
          <version>5.3.2version>
          <type>pomtype>
      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>

加一个名字 或者是别名。

应用场景:公共开发的时候,使用SVN上传下载的代码可能会被不同人更改,使用alias可以在不修改代码的情况下,完成代码的使用。




属性注入


  • 构造器的缺点:

    • 必须要有带参构造器以进行new

      • 什么是构造器?
      public calss T{
          private int a;
          public T(int a){
              this.a = a;
          }
          
          public T(){
              
          };
      }
      
    • 要有无参构造器以进行初始化赋值

    • 加一个参数就要多一个构造器




对象属性 Spring 来配置对象 set 方法

标签


<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

只有单一一个元素的用标签,否则用 + + key="",value=""(有两种方式)


<property name="list">
	<array>
    	<value>avalue>
        <value>bvalue>
        <value>cvalue>
    array>
property>

<property name="set">
	<array>
    	<value>avalue>
        <value>bvalue>
        <value>cvalue>
    array>
property>

<property name="map">
	<map>
    	entrty>
        entrty>
        entrty>
    map>
property>

<property name="map">
	<props>
    	<prop key="a">1prop>
        <prop key="b">2prop>
        <prop key="c">3prop>
    props>
property>




总结


  • 创建 Maven 项目
  • 使用 Maven 项目搭建 Spring 项目
  • 属性注入的集中方式
  • ApplicationContext.xml 文件中构造 Set Map List 的几种方式(谁是最特殊的?)

你可能感兴趣的:(Java,spring,maven,xml)