spring常见注解方法,小编主要结合老师的讲解,和自己的理解方式作为解析,方便后期的记忆。
创建一个学生的实体类
private String student_id;// 学生id
private String name;// 学生名字
// 引用老师对象 每个学生都有一个对应的辅导员
private Teacher teacher;
省略get、set、toString方法,自己去生成。
创建一个老师的实体类
private String teacher_id;// 教师编号
private String name;// 教师名字
省略get、set、toString方法,自己去生成。
创建一个Test测试类
传统数据的管理方法
Teacher teacher = new Teacher();
teacher.setName("雷老板");
teacher.setTeacher_id("1234561");
Student student = new Student();
student.setStudent_id("20211");
student.setName("张三");
student.setTeacher(teacher);
这样赋值的思路,是先创建一个对象,其次在赋值。这样我会我们后期开发不便于维护和 开发,下面我们引入Spring方式进行注解。(Spring 提供的bean的管理方式)
- 导入spring需要用到的jar包
- 引入applicationContext.xml文件
- 取得用户的上下文
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Student student2 = (Student) context.getBean("s1");// 使用context的getBean方法获取配置文件bean标签声明的对象
System.out.println(student2);
Student student3 = (Student) context.getBean("s1");
System.out.println(student2 == student3);`
set 注解的方式声明对象 id声明对象的名称 class属性声明该对象是由哪个类生成的 Student s1=new Strudent()
property name 是类的属性名 value是该属性对应的值
property name=“student_id” value=“123”>==》student.setStudent_id=123
<bean id="s1" class="com.fall.chapter1.Student">
<property name="student_id" value="123"></property>
<property name="name" value="张三"></property>
<property name="teacher" ref="t"></property>
</bean>
静态工厂注入对象 ,声明一个静态工厂 static其次是能生成出对象 本质就是一个方法
public static Student getStudentBean() {
Student student = new Student();// 产生一个对象
student.setName("静态工厂出来的张三");
System.out.println("静态的工厂方法调用");
return student;
}
xml文件
<!-- 通过静态工厂的方式 factory-method=""属性指名了使用哪个静态方法来产生具体的对象值为方法明 -->
<bean id="s2" class="com.fall.chapter1.Student"
factory-method="getStudentBean"></bean>
test类测试
Student student4 = (Student) context.getBean("s2");
System.out.println(student4);
动态工厂,在实体类声明一个动态工厂
public Student getDynamicBean() {
Student student = new Student();// 产生一个对象
student.setName("动态工厂出来的张三");
System.out.println("动态的工厂方法调用");
return student;
}
XML 文件注入
<!-- 通过动态工厂的方式 1.先创建一个temp对象值为 null ===》Student temp=null 2.使用时才去赋值 temp=getDynamicBean() -->
<bean id="temp" class="com.fall.chapter1.Student"></bean>
<bean id="s3" factory-bean="temp" factory-method="getDynamicBean"></bean>
Test动态工厂测试
Student student5 = (Student) context.getBean("s3");
System.out.println(student5);
属性注入
// 属性注入的构造方法
public Student() {
super();
}
spring 属性注入 其本质时调用对应的构造方法,传入参数从而进行实例化的过程
Student s4=new Student(333,彭炸鱼);构造方法的形参名为id 和 name保持一致
constructor-arg name属性的值时形参的名字 不是类的属性名
<bean id="s4" class="com.fall.chapter1.Student">
<constructor-arg name="id" value="333"></constructor-arg>
<constructor-arg name="name" value="彭炸鱼"></constructor-arg>
</bean>
// 属性注入 main
Student student6 = (Student) context.getBean("s4");
System.out.println(student6);
这边小编主要说最常用的,想了解更多,请评论留言。