使用java的方式配置Spring(@Component、@Configuration、@Bean)
2023-09-27 14:26:26 时间
使用java的方式配置Spring
1、@Component配合@Bean实现
- @Component代表这是一个配置类,就和我们之前看的beans.xml是一样的
- @Bean,相当于我们之前写的一个bean标签
- 代码实现
1.注解实现public class User { private String name; public String getName() { return name; } //属性注入值 @Value("狂神") public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "name='" + name + '\'' + '}'; } }
2.相当于xml中:@Component @ComponentScan("nuc.ss.pojo") public class MyConfig { //这个方法的名字就相当于bean标签的id属性 //这个方法的返回值,就相当于bean标签中的class属性 @Bean public User user() { return new User();//就是要返回注入到bean的对象! } }
<?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 https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <bean id="user" class="nuc.ss.pojo.User"> <property name="name" value="狂神"/> </bean> <context:component-scan base-package="nuc.ss.pojo"/> </beans>
2、@Configuration配合@Bean实现
- @Configuration代表这是一个配置类,就和我们之前看的beans.xml是一样的
- @Bean,相当于我们之前写的一个bean标签
- 代码实现
1.注解实现public class User { private String name; public String getName() { return name; } //属性注入值 @Value("狂神") public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "name='" + name + '\'' + '}'; } }
2.相当于xml中:@Configuration @ComponentScan("nuc.ss.pojo") public class MyConfig { //这个方法的名字就相当于bean标签的id属性 //这个方法的返回值,就相当于bean标签中的class属性 @Bean public User user() { return new User();//就是要返回注入到bean的对象! } }
<?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 https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <bean id="user" class="nuc.ss.pojo.User"> <property name="name" value="狂神"/> </bean> <context:component-scan base-package="nuc.ss.pojo"/> </beans>
3、@Component配合@Configuration实现
- @Component说明这个类被Spring接管了,注册到了容器中,相当于之前的@Bean
- @Configuration代表这是一个配置类,就和我们之前看的beans.xml是一样的
- 代码实现
1.注解实现@Component public class User { private String name; public String getName() { return name; } //属性注入值 @Value("狂神") public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "name='" + name + '\'' + '}'; } }
2.相当于xml中:@Configuration @ComponentScan("nuc.ss.pojo") public class MyConfig { public User user() { return new User();//就是要返回注入到bean的对象! } }
<?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 https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <bean id="user" class="nuc.ss.pojo.User"> <property name="name" value="狂神"/> </bean> <context:component-scan base-package="nuc.ss.pojo"/> </beans>
4、测试类
@Test
public void test() {
// 如果完全使用了配置类的方式去做,我们就只能通过AnnotationContext 上下文来获取容器,通过配置类的class对象加载!
ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
User getUser = context.getBean("user", User.class);
System.out.println(getUser.getName());
}
5、@Component与@Configuration区别联系
相关文章
- Java日志的学习03--log4j 配置Spring JdbcTemplate已经MyBatis打印sql
- 收集Java面试题知识点(Java基础部分二)
- Java Spring中同时访问多种不同数据库
- Java Tomcat SSL 服务端/客户端双向认证
- java中spring提供的属性copy方法
- java框架篇---spring aop两种配置方式
- HTML5+Java(Spring下) 拍照上传图片
- tomcat找不到java_home
- Java 必看的 Spring 知识汇总!
- 4 Java学习之 反射Reflection
- 万字长文轻松彻底入门spring,各大公司Java面试题超详细总结
- 一起学JAVA之《spring boot》03 - 开始spring boot基本配置及项目结构(转)
- Java中请求HTTPS加密的源代码
- 数据库模型---之mysql(操作数据库)含序列化模型对象(类似java实体类映射)
- java 如何在listener(监听器) 中使用Spring容器管理bean
- Java泛型底层源码解析--ConcurrentHashMap(JDK1.6/JDK1.7/JDK1.8)
- java中的容器解释
- Java 变量和常量
- Java和aes.js实现AES(CBC)加密与解密实现代码
- Java使用JWT和Spring基于token验证登陆权限(非cookie)
- Java 使用Spring Security OAuth2中configure(AuthenticationManagerBuilder auth)配置
- 学习Java Spring SpringMVC SpringBoot的朋友请看这里~
- 1039 到底买不买(JAVA)
- Java通过JNI调用dll详细过程(转)
- Java(多)线程中注入Spring的Bean