8、搭建的spring项目实例18-2-6

前提准备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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>


  <groupId>com.hsx.project</groupId>
  <artifactId>project-core</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>


  <name>project-core</name>
  <url>http://maven.apache.org</url>


  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <maven.compiler.source>1.8</maven.compiler.source>  
     <maven.compiler.target>1.8</maven.compiler.target>  
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
  </properties>



  <dependencies>
     <!-- Core Container 核心容器 -->
     <!-- 核心工具类,Spring其它模块大量使用Spring-core -->
  <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.3.2.RELEASE</version>
    </dependency>
  <!-- 运行时Spring容器 -->
  <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.2.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>


一、App.java  main方法 

package com.hsx.project.project_core;

import org.springframework.context.ApplicationContext;

//这是第一种方式导入的包:import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

import com.hsx.project.project_core.domain.Car;

 

/**

 * Hello world!

 *

 */

publicclassApp

{

   

   publicstaticvoid main( String[]args ){

   /*

     * 方法一、// 1)用基于注解的方式创建IOC容器

     *

     AnnotationConfigApplicationContextcontext= new AnnotationConfigApplicationContext(Myconfig.class);

       // 2)获取bean对象,并打印出来

     System.out.println(context.getBean(Car.class));

     System.out.println(context.getBean("cars"));

     */

     

   //方法二、用基于applicationContext.xml配置方式     

     

   ApplicationContext Context1 =newClassPathXmlApplicationContext("applicationContext.xml");

   //获取bean对象

   Car car= (Car)Context1.getBean("car");

   System.out.println(car);

 //System.out.println(car.toString());

    

   }

}

 

二、Car.java javabean对象

package com.hsx.project.project_core.domain;

 

import java.util.List;

import java.util.Map;

import java.util.Set;

 

publicclassCar {

   //基本数据类型

   private Stringcolor;

   private Integerspeed;

   //引用类

   private Personperson;  

   //集合(接口)

   private List<?>lists;

   private Set<?>sets;

   private Map<?, ?>maps;

  

   public String getColor() {

      returncolor;

   }

   publicvoid setColor(Stringcolor) {

      this.color =color;

   }

   public Integer getSpeed() {

      returnspeed;

   }

   publicvoid setSpeed(Integerspeed) {

      this.speed =speed;

   }

   public List<?>getLists() {

      returnlists;

   }

   publicvoid setLists(List<?>lists) {

      this.lists =lists;

   }

   public Set<?> getSets(){

      returnsets;

   }

   publicvoid setSets(Set<?>sets) {

      this.sets =sets;

   }

   public Map<?, ?>getMaps() {

      returnmaps;

   }

   publicvoid setMaps(Map<?, ?>maps){

      this.maps =maps;

   }

   public Person getPerson() {

      returnperson;

   }

   publicvoid setPerson(Personperson) {

      this.person =person;

   }

  

   @Override

   public String toString() {

      return"Car [color="+color+ ", speed=" + speed+ ", person=" +person+ ", lists=" + lists+ ", sets="+sets

            +", maps="+maps+ "]";

   }

  

  

}

 

 

package com.hsx.project.project_core.domain;

 

publicclassPerson {

   private Stringname;

   private StringidCard;

   public String getName() {

      returnname;

   }

   publicvoid setName(Stringname) {

      this.name =name;

   }

   public String getIdCard() {

      returnidCard;

   }

   publicvoid setIdCard(StringidCard) {

      this.idCard =idCard;

   }

  

 

}

 

Person.java 对象

package com.hsx.project.project_core.domain;

 

publicclassPerson {

   private Stringname;

   private StringidCard;

   public String getName() {

      returnname;

   }

   publicvoid setName(Stringname) {

      this.name =name;

   }

   public String getIdCard() {

      returnidCard;

   }

   publicvoid setIdCard(StringidCard) {

      this.idCard =idCard;

   } 

 

}

三、方式1)用基于注解的方式 Myconfig.java配置类

package com.hsx.project.project_core;

 

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.Scope;

 

import com.hsx.project.project_core.domain.Car;

 

/**

 * 标明这是个配置类

 * @authorHsx

 *

 */

@Configuration

publicclassMyconfig {

   @Bean(name="cars")

   @Scope("prototype")

   public Car creatCar(){

      returnnew Car();

   } 

 

}

 

四、方式2)基于applicationContext.xml配置的方式

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans" 

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

       xsi:schemaLocation="http://www.springframework.org/schema/beans

      http://www.springframework.org/schema/beans/spring-beans.xsd"> 

    <beanid="car"class="com.hsx.project.project_core.domain.Car">

      <propertyname="color"value="red"></property>

      <propertyname="speed"value="80"></property>    

      <!-- <ref bean="person"/>等价于ref="person"推荐下面写法

          spring的配置文件可能会有多个

         <propertyname="a" ref="b" />就是找当前配置文件里的bean也就是b

         <refbean ="b"/> 是寻找全局中的 bean;

       -->

      <propertyname="person"ref="person"></property>

      <propertyname="lists">

         <list>

            <value>"奥迪"</value>

            <value>"奔驰"</value>

            <value>"宝马"</value>

            <refbean="person"></ref>

         </list>

      </property>

       <propertyname="sets">

         <set>

            <value>"玛莎拉蒂"</value>

            <value>"兰博基尼"</value>

            <refbean="person"></ref>

         </set>

      </property>

       <propertyname="maps">

         <map>

            <entrykey="张三"value="老板"></entry>

            <entrykey="李四"value="经理"></entry>

             <entrykey="王五"value-ref="person"/> 

         </map>

      </property>    

    </bean>

    <beanid="person"class="com.hsx.project.project_core.domain.Person">

      <propertyname="name"value="小米"></property>

      <propertyname="idCard"value="4310111111111"></property>    

    </bean>

     

</beans>

      

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值