java Spring 4.0基础学习(一)
来源:互联网 发布:织梦cms百科 编辑:程序博客网 时间:2024/06/06 18:52
创建项目:spring-1
导入spring 核心的jar包 beans,context,core,expression 以及打印日志的logging.
创建HelloWorld 类,创建 car 类,person类
创建测试类Main
代码如下:
HelloWorld
package com.selfStudy;public class HelloWord {private String name;public HelloWord(){System.out.println("build no param constructor HelloWorld ");}public String getName() {return name;}public void setName(String name) {System.out.println("setName被创建了");this.name = name;}public void hello( ){System.out.println("hello "+name);}}
applicationContext.xml 配置如下:
<?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:cache="http://www.springframework.org/schema/cache"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.1.xsd"><!-- 配置bean文件 --><!-- id定义对象名 class反射创建对象 --><!--calss: 通过放射的方式在IOC容器中创建bean,所以要求 Bean 中必须有误参数的构造器 id: 标识容器中的bean ID 唯一 该注入方式为setter方法注入即属性注入。 --><bean id="helloworld" class="com.selfStudy.HelloWord"><property name="name" value="Spring"></property></bean></bean>测试类Main如下:
public class Main {public static void main(String[] args) {//HelloWord helloWorld= new HelloWord();//helloWorld.setName("World");//helloWorld.hello();// 1.创建Spring 的IOC容器对象,同时被setname给对象//ApplicationContext 代表IOC 容器 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");//2.从Ioc容器中获取bean的实例对象// 利用ID定位容器中的beanHelloWord helloworld = (HelloWord) ctx.getBean("helloworld");// 利用类型返回容器中的bean,但要求IOC容器中必须值有一个该类型的Bean//HelloWord helloworld = ctx.getBean(HelloWord.class);//3.通过bean实例调用对象方法helloworld.hello();}}
car 类:
package com.selfStudy;public class Car {private String brand ;private String corp;private double price;private int maxSpeed;public Car(String brand, String corp, double price) {super();this.brand = brand;this.price = price;this.corp = corp;}public void setPrice(double price) {this.price = price;}public void setMaxSpeed(int maxSpeed) {this.maxSpeed = maxSpeed;}public Car(String brand, String corp, int maxSpeed) {super();this.brand = brand;this.corp = corp;this.maxSpeed = maxSpeed;}@Overridepublic String toString() {return "Car [brand=" + brand + ", corp=" + corp + ", price=" + price+ ", maxSpeed=" + maxSpeed + "]";}}applicationContext.xml 配置如下:
<!-- 通过构造方法来配置 bean 的属性 --><bean id="car" class="com.selfStudy.Car"><constructor-arg value="Audi" index="0"></constructor-arg><constructor-arg value="shanghai" index="1"></constructor-arg><constructor-arg value="300000" index="2"></constructor-arg></bean><!-- 使用构造器注入属性可以指定参数的位置和参数的类型,以区分重载的构造器 --><bean id="car2" class="com.selfStudy.Car" ><constructor-arg value="BMW" type="java.lang.String"></constructor-arg><!-- 如果字面值中包含特殊字符可以使用<![CDATA[]]>包裹起来 --><!-- 属性值也可以使用value 直接进行配置 --><constructor-arg type="java.lang.String"><value ><![CDATA[<shanghai>]]></value></constructor-arg><constructor-arg type="int"><value>255</value></constructor-arg></bean>
测试类Main如下:
//Car car = (Car) ctx.getBean(Car.class);
Car car = (Car) ctx.getBean("car");
System.out.println(car);
Car car2 = (Car) ctx.getBean("car2");
System.out.println(car2);
Person类创建如下:
package com.selfStudy;public class Person {private String name;private int age;private Car car ;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + ", car=" + car + "]";}public Person(){}public Person(String name, int age, Car car) {super();this.name = name;this.age = age;this.car = car;}}
applicationContext.xml 文件配置如下:
<bean id="person" class="com.selfStudy.Person"><property name="name" value="Tom"></property><property name="age" value="23"></property><!-- 可以使用property 的 ref 属性建立bean之间的引用关系--><!-- <property name="car" ref="car2"></property> --><!-- <property name="car"><ref bean="car2"/></property> --><!-- 内部bean car3不能被外部引用属性配置--><property name="car"><bean id="car3" class="com.selfStudy.Car"><constructor-arg value="Ford"></constructor-arg><constructor-arg value="Changan"></constructor-arg><constructor-arg value="200000" type="double"></constructor-arg></bean></property><property name="car.maxSpeed" value="333"></property></bean><bean id="person2" class="com.selfStudy.Person"><property name="name" value="Dom"></property><property name="age" value="25"></property><!-- 内部bean car3不能被外部引用构造器配置--><property name="car"><bean id="car4" class="com.selfStudy.Car"><constructor-arg value="ChanganBB"></constructor-arg><constructor-arg value="Changan"></constructor-arg><constructor-arg value="88888" type="double"></constructor-arg></bean></property></bean><bean id="person3" class="com.selfStudy.Person"><constructor-arg value="Jerry"></constructor-arg><constructor-arg value="27"></constructor-arg><!-- 测试赋值null --><!-- <constructor-arg ><null/></constructor-arg> --><!-- 为级联属性赋值 --><constructor-arg ref="car2"></constructor-arg><property name="car.maxSpeed" value="360" ></property></bean>
测试类Main创建:
Person person = (Person)ctx.getBean("person");System.out.println(person);Person person2 = (Person)ctx.getBean("person2");System.out.println(person2);Person person3 = (Person)ctx.getBean("person3");System.out.println(person3);
阅读全文
0 0
- java Spring 4.0基础学习(一)
- Spring基础的学习(一)
- Java基础学习(一)
- Java 基础 学习(一)
- Java学习基础(一)
- java基础学习(一)
- Java基础学习(一)
- java基础学习(一)
- spring基础学习一(spring工作的基本原理)
- spring boot零基础学习 spring boot简介(一)
- Spring(基础)学习文档一
- Spring MVC 一 基础学习
- 【学习笔记】java基础学习(一)
- java学习记录----java基础(一)
- java基础学习一
- java基础学习(一)
- java基础学习(一)
- java基础学习(一)
- Java 中的成员内部类
- spark-streaming-kafka-0-8版本 的java连接ZK例子
- c++相关学习书籍
- MIT eecs 6.00 problemset3
- 01链表-单向静态链表
- java Spring 4.0基础学习(一)
- 第三课 Tensorflow实现人工神经网络
- ConfigParser模块详解
- Qt5.9.1+mingw32静态编译
- spoj COT
- BZOJ 1007 几何 解题报告
- 网络流24题-4
- 最短路算法
- Docker私有仓库搭建