[Spring]Spring注解
2021-06-17 07:03
标签:contex col 报错 bean setter 分享图片 默认 rsh 结果 @Required注解 @Required注解用于setter方法,表明这个属性是必要的,不可少的,必须注入值 假设有个测试类,里面有name和password两个属性 我给两个属性的setter方法都加了@Required注解 现在我只给一个属性加注入,另一个不加 可以看到报错 然后我补上注入之后就没问题了 @Autowoired注解 其实看名字就可以看出来,这个是跟自动装填有关 使用它需要加一行代码 1,在属性前加此注解 先给定两个类 第二个类在第三个成员变量前面加个此注解 然后applicationContext这样写 在打印一下结果 可以看到Customer对象是自动装填了的 2,在构造函数之前加此注解 效果和上面是一样的,不演示了 3,@Autowired(required=false)的作用 这里跟之前的@Required的作用类似 默认情况下,@Autowired 注释意味着依赖是必须的,它类似于 @Required 注释,然而,你可以使用 @Autowired 的 (required=false) 选项关闭默认行为。 这里跟@Required的效果类似,不演示了 //后面继续更新 [Spring]Spring注解 标签:contex col 报错 bean setter 分享图片 默认 rsh 结果 原文地址:https://www.cnblogs.com/Yintianhao/p/9721525.htmlpackage com.example.demo1.Implements;
import com.example.demo1.Interface.UserService;
import org.springframework.beans.factory.annotation.Required;
public class UserClientImpl implements UserService {
private String name;
private String password;
public UserClientImpl(){}
public UserClientImpl(String name,String password){
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
@Required
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
@Required
public void setPassword(String password) {
this.password = password;
}
@Override
public void save() {
System.out.println("客户端保存信息"+name+"--"+password);
}
}
bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcess>
package com.example.demo1.Other;
public class CustomerTest {
public CustomerTest(){
System.out.println("在Customer.构造方法中...");
}
public void show(){
System.out.println("在Customer.show方法中...");
}
}
package com.example.demo1.Implements;
import com.example.demo1.Interface.Customer;
import com.example.demo1.Other.CustomerTest;
import org.springframework.beans.factory.annotation.Autowired;
public class CustomerImpl implements Customer {
private String name;
private String id;
@Autowired
private CustomerTest customerTest;
public CustomerTest getCustomerTest() {
return customerTest;
}
public void setCustomerTest(CustomerTest customerTest) {
this.customerTest = customerTest;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public void show() {
System.out.println(id+"..."+name);
customerTest.show();
}
}
bean id="Customer"
class="com.example.demo1.Implements.CustomerImpl">
bean>
bean id="CustomerTest" class="com.example.demo1.Other.CustomerTest">bean>
ApplicationContext instance = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerImpl customer = (CustomerImpl) instance.getBean("Customer");
customer.show();
((ClassPathXmlApplicationContext) instance).registerShutdownHook();