1.开发spring至少需要使用的jar(5个+1个)
spring-aop.jar //开发AOP特性时需要的JAR
spring-beans.jar //处理Bean的jar
spring-context.jar //处理spring上下文的jar
spring-core.jar //spring核心jar
spring-expression.jar //spring表达式
commons-logging.jar //三方提供的日志jar
2. IOC
原来的new 一个对象
package com.wenjian.entity;
public class Student {
private int stuNo;
private String stuName;
private int stuAge;
public int getStuNo() {
return stuNo;
}
public void setStuNo(int stuNo) {
this.stuNo = stuNo;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public int getStuAge() {
return stuAge;
}
public void setStuAge(int stuAge) {
this.stuAge = stuAge;
}
@Override
public String toString() {
return "Student{" +
"stuNo=" + stuNo +
", stuName='" + stuName + '\'' +
", stuAge=" + stuAge +
'}';
}
}
package com.wenjian.test;
import com.wenjian.entity.Student;
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.setStuNo(1);
student.setStuName("健健");
student.setStuAge(23);
System.out.println(student);
}
}
toString方法是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。
它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法
注:若希望将StringBuffer在屏幕上显示出来, 则必须首先调用toString方法把它变成字符串常量, 因为PrintStream的方法println()不接受StringBuffer类型的参数
- Java 中字符串属于对象,是不可变的,Java 提供了 String 类来创建和操作字符串。
- 当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
(1)如果要操作少量的数据用 String;
(2)多线程操作字符串缓冲区下操作大量数据 StringBuffer;
(3)单线程操作字符串缓冲区下操作大量数据 StringBuilder。
2.1 applicationContext.xml (IOC 容器)
<!--该文件中产生的所有对象,被spring放入了一个称之为spring ioc容器的地方-->
<!-- id:唯一标识符class:指定类型-->
<bean id="student" class="org.wenjian.entity.Student">
<property name="stuNo" value="2"> </property>
<property name="stuName" value="wenjian" />
<property name="stuAge" value="23"> </property>
</bean>
2.2 Test.java
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); //Spring 上下文对象
Student studnet= (Student)context.getBean("student");
//课程工厂
public class CourseFactory {
public static ICourse getCourse(String name) {
if(name.equals("java")) {
return new JavaCourse();
}else {
return new HtmlCourse();
}
}
//多态
public void learn(String name) {//学习任何课程java
ICourse course = CourseFactory.getCourse(name) ;
course.learn(); // / /course就是根据name拿到的相应的课程
}
//Test.java
public static void learnCoursewithFactory() {
student student = new Student();
student.learn("html");
}
SpringIOC 容器 (超级工厂) 自动帮我们写了
控制反转 :获取对象方式 ,之前是自己 new Student,setXxx 现在是拿别人给你创造好的
DI(依赖注入):将属性值–>属性–>bean–>ioc容器