刚刚开始学习java ssm框架,当作自己的学习笔记来写。理解方面可能会有错误,大佬们见谅~
1.首先要知道springIOC是什么?
ioc即“控制反转”,是通过java反射技术实现的,又被叫做DI即“依赖注入”。这玩意儿到底是个啥,个人认为可以理解为一个大的超级工厂(工厂模式--一种设计模式),他的作用是解决代码之间的耦合性问题,之前我们java对象都是new出来的,在springIOC中,我们可以通过其它方式(配置文件/注解)来实例化一系列对象,并将他们都扔进这个容器里,需要的时候直接取出来用就好了。
注解有一下几个
2.第一个简单的例子
环境: win10 + idea + java8
才开始使用idea感觉和之前学习时用的Android Studio挺像的,进入idea后新建一个spring项目,他会自己下载一些相关的jar包,可能是外网网速比较差。(关于idea有挺多快捷键可自行百度)
完蛋,不想写了,这里贴一下自己的码了,沙雕代码 0.0
目录结构 一共两包 学生老师课程,没啥内容setter/getter/toString。。 还有一个测试类 重要是是配置文件叭。如果想自己运行的话代码都在下边复制就ok啦。
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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 方式1: 通过编写配置文件将对象注入springIoc容器 -->
<bean id="student" class="com.piboring.mapper.Student">
<property name="stuId" value="1"/>
<property name="stuName" value="Bairz"/>
<property name="stuAge" value="18"/>
</bean>
<bean id="teacher" class="com.piboring.mapper.Teacher">
<property name="TName" value="Jinfeng Gao"/>
<property name="TAge" value="30"/>
</bean>
<!-- 注意teacher是一个复杂类型,参考Teacher bean的id -->
<bean id="course" class="com.piboring.mapper.Course">
<property name="cname" value="Scala"/>
<property name="teacher" ref="teacher"/>
</bean>
</beans>
Test.java
package com.piboring.test;
import com.piboring.mapper.Course;
import com.piboring.mapper.Student;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
springIocByConf();
}
public static void springIocByConf(){
//解析配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml") ;
//获取学生对象
Student stu = (Student)context.getBean("student");
System.out.println(stu.toString());;
//获取学生对象
Course course = (Course)context.getBean("course");
System.out.println(course.toString());
}
}
Student.java
package com.piboring.mapper;
public class Student {
private String StuId;
private String StuName;
private String StuAge;
public Student() {
}
public Student(String stuId, String stuName, String stuAge) {
StuId = stuId;
StuName = stuName;
StuAge = stuAge;
}
public String getStuId() {
return StuId;
}
public String getStuName() {
return StuName;
}
public String getStuAge() {
return StuAge;
}
public void setStuId(String stuId) {
StuId = stuId;
}
public void setStuName(String stuName) {
StuName = stuName;
}
public void setStuAge(String stuAge) {
StuAge = stuAge;
}
@Override
public String toString() {
return "Student{" +
"StuId='" + StuId + '\'' +
", StuName='" + StuName + '\'' +
", StuAge='" + StuAge + '\'' +
'}';
}
}
Course.java
package com.piboring.mapper;
public class Course {
private String Cname;
private Teacher teacher;
public Course() {
}
public Course(String cname, Teacher teacher) {
Cname = cname;
this.teacher = teacher;
}
public String getCname() {
return Cname;
}
public void setCname(String cname) {
Cname = cname;
}
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
@Override
public String toString() {
return "Course{" +
"Cname='" + Cname + '\'' +
", teacher=" + teacher +
'}';
}
}
Teacher.java
package com.piboring.mapper;
public class Teacher {
private String TName;
private String TAge;
public Teacher() {
}
public Teacher(String TName, String TAge) {
this.TName = TName;
this.TAge = TAge;
}
public String getTName() {
return TName;
}
public void setTName(String TName) {
this.TName = TName;
}
public String getTAge() {
return TAge;
}
public void setTAge(String TAge) {
this.TAge = TAge;
}
@Override
public String toString() {
return "Teacher{" +
"TName='" + TName + '\'' +
", TAge='" + TAge + '\'' +
'}';
}
}
来源:CSDN
作者:Piboring
链接:https://blog.csdn.net/Devil_Sjd/article/details/104483625