spring常见注解方式

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的管理方式)

  1. 导入spring需要用到的jar包
  2. 引入applicationContext.xml文件
  3. 取得用户的上下文
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);

这边小编主要说最常用的,想了解更多,请评论留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 Spring基本特征 6 2 Spring的组成 6 2.1 Spring的jar包 6 2.2 Spring配置文件 7 2.3 Spring API 8 3 Spring基本功能详解 8 3.1 SpringIOC 8 3.2别名Alias 11 别名拓展: 11 3.3 Spring容器内部对象的创建 12 Spring容器内部对象创建拓展: 12 3.3.1使用类构造器实例化(默认无参数) 14 3.3.2使用静态工厂方法实例化(简单工厂模式) 14 3.3.3初始化(创建)bean时机 15 Lazy-init初始化bean的时机拓展: 15 3.4 Bean的作用域 16 Scope单例多例作用域拓展: 16 3.4.1 singleton(默认值) 16 3.4.2 prototype 17 3.4.3 Request 17 3.4.4 Session 18 3.4.5 Global session 18 3.4.6 指定Bean的初始化方法和销毁方法 18 Bean的初始化和销毁拓展: 18 Spring的IOC总结: 20 3.5 依赖注入(DI) 20 3.5.1 使用构造器注入 20 3.5.2 使用属性setting方法进行注入 21 3.5.3 装配list集合 22 3.5.4 装配set集合 22 3.5.5 装配map 22 3.5.6 装配Properties 23 3.6 注解注入 23 注解注入拓展: 23 3.6.1 @Autowired 26 3.6.2 @Qualifier 27 3.6.3 @Resource 27 3.6.4 @PostConstruct 28 3.6.5 @PreDestroy 28 注解注入拓展: 28 3.7扫描注入 30 注解扫描拓展: 32 Mvc用注解写: 34 Spring容器IOC和di的整个启动过程: 38 3.8 spring中的继承 38 拓展spring为类中的属性赋值: 40 小结: 47 面向接口编程: 47 4 面向切面编程 52 4.1 代理模式 52 代理模式拓展: 52 4.1.1 JDK动态代理 58 JDK动态代理拓展: 59 4.1.2 CGLIB做代理 66 CGLIB动态代理拓展: 68 4.1.3 Spring的动态代理 71 4.2 AOP编程 71 4.2.1概念: 71 SpringAOP概念拓展: 73 之前实现了目标方法的动态调用,现在来实现切面的动态调用。 74 4.2.2 AOP实现的两种模式 78 4.2.2.1 xml形式 78 XML形式拓展: 81 异常通知处理例子: 91 不用spring异常通知,另一种处理异常 96 4.2.2.2Aop注解形式(了解) 99 注解注入拓展: 103 5 Spring数据库 106 5.1 Spring+JDBC 106 5.1.1 Jdbc编程特点 106 5.1.2引入DataSource 106 5.1.3 核心类JdbcTemplate 106 5.1.4 使用JdbcTemplate 106 5.1.5 继承JdbcDaoSupport 107 5.1.6 使用properties文件 107 5.1.7 RowMapper的使用 107 拓展: 108 DataSource注入的三种方式: 108 5.1.8声明式事务管理 116 5.1.8.1Spring的事务管理器 117 5.1.8.2Spring事务的传播属性 117 5.1.8.3Spring事务的隔离级别 117 拓展: 118 5.1.8.4以XML配置的 形式 119 拓展: 120 5.1.8.5以注解方式配置 125 拓展: 127 5.1.9使用CGLIB以XML形式配置事务 130 5.2 Spring+Hibernate 131 5.2.1 HibernateTemplate模板 131 5.2.2 声明式事务 131 配置XML文件 131 拓展: 132 注解形式: 137 拓展: 138 6 Struts2+spring+hibernate 141 6.1 需要添加的jar包 141 6.2 Spring融合web服务器 141 6.3 struts.xml文件 143 6.4 OpenInSessionView 143 拓展: 144 实例: 146

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值