如何配置和使用Spring框架的bean
2023-09-14 08:57:21 时间
1. 首先在src目录下新建beans.xml文件,该文件名可更改。
2. 编辑xml文件如下,这里需要注意的是beans的表头中信息需要根据不同的版本对应的内容不同,本例中使用的spring的版本为4.0.4。
在做单元测试时一直提示错误“找不到元素 'beans' 的声明”,最后找到原因是网上找的头部内容与我使用的spring的版本不一致导致的。
<?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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" default-autowire="byName"> <context:annotation-config/> <bean id="date" class="java.util.Date"></bean> <bean id="person" class="com.model.Person"> <property name="user" ref="user"></property> </bean> <bean id="user" class="com.model.User"></bean> </beans>
3. 新建个测试类BeanTest.java如下, 这里是通过类加载的方式来生成Person的对象。
@Test public void beanTest(){ //ApplicationContext为Spring容器最常用的接口 //ClassPathXmlApplicationContext为ApplicationContext的实现类 ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); Person p = ctx.getBean("person",Person.class); p.useUser(); }
4. Person类如下:
package com.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="t_person") public class Person { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id; private String name; private String sex; private User user; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } //持有其他类的方法 public void useUser(){ System.out.println("准备使用user"); user.getName(); } }
5. User.java类如下
package com.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="t_user") public class User extends BaseModel { /** * */ private static final long serialVersionUID = -8640311439809984837L; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private int id; private String name; private String lastName; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { System.out.println("pring getName:" + name); return name; } public void setName(String name) { System.out.println("pring setName:" + name); this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public User() { super(); } }
6.执行3中的测试类,结果如下
7. 由此可以得出,通过ApplicationContext的实现类ClassPathXmlApplicationContext可以拿到Person类的bean的实例。
然后通过该实例中方法,访问到User对象中的方法。
相关文章
- JavaWeb_(Spring框架)注解配置
- Spring配置类为什么要分Full和Lite模式
- [翻译] Spring Framework Overview
- ssh(Spring+Spring mvc+hibernate)——updateDept.jsp
- spring cloud: zuul(二): zuul的serviceId/service-id配置(微网关)
- spring mvc: 可参数化的视图控制器(在配置中指定jsp文件)MultiActionController/SimpleUrlHandlerMapping/ParameterizableViewController
- CXF Spring 实现WebService - 观千剑而后识器,操千曲而后晓声。 - 博客频道
- 03-spring学习-属性配置细节
- Spring Boot启动时数据库初始化spring.datasource(转)
- spring 学习3-Spring AOP
- [Java spring] Building a command-line application
- spring MVC配置详解
- spring boot模板引擎thymleaf用法详解
- spring学习12 -Spring 框架模块以及面试常见问题注解等
- Atitit Spring事务配置不起作用可能出现的问题: .是否是数据库引擎设置不对造成的【笔者就遇到了这个问题,由于笔者使用的是mysql数据,但是在创建表的时候引擎默认(mysql中引擎默认为
- Atitit.mybatis的测试 以及spring与mybatis在本项目中的集成配置说明
- Spring MVC配置CORS(解决跨域请求)
- 【项目实战】使用Spring框架中的RestTemplate,实现HTTP请求的调用
- 【Spring Boot 开发实战】第1讲 Kotlin 的极简特性之:隐式类型与函数式编程
- Spring Boot 自定义配置key @ConfigurationProperties(prefix = "db.clickhouse")
- struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)
- 009-Spring Boot 事件监听、监听器配置与方式、spring、Spring boot内置事件
- 通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术
- spring mongodb 复制集配置(实现读写分离)
- 15、笔记-spring-配置说明