注解报红的解决办法:
今天遇到了这个问题,解决之后防止忘记把这个方法记下来:
下图红框处报红,原因是找不到网址,那么我们可以自己配置
第一步:找到settings下的schema
第二步,点击右边的+号,将爆红的网址cv进去
第三步,在下面的file中,找到本地的”bean.xsd“文件,选中添加进去,“apply”->“ok”。大功告成
----------------------------------------分割线----------------------------------------
注解方式创建对象
@Component 通用注解,可以创建任何类型的对象
使用该注解创建的对象的id默认是 类名,首字母小写
自己指定id: @Component(value=“accountService”)
等价于之前使用标签创建对象的方式:
ps:一般不用这个注解
<bean id="accountDao" class="dao.impl.AccountDaoImpl"></bean>
用注解时需要手动添加配置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
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
//手动添加扫描
<context:component-scan base-package="com"></context:component-scan>
</beans>
常用以下注解:
Controller :控制层 ,使用该注解创建的对象的id默认是 类名,首字母小写
Service :业务层,使用该注解创建的对象的id默认是 类名,首字母小写
Repository :dao,使用该注解创建的对象的id默认是 类名,首字母小写
注解方式实现注入:
@Autowired:按照类型注入,可以用在成员上或方法上
容器中存在唯一一个某个类型的对象,把这个类型的对象赋给使用该注解的成员
容器中存在多个同类型的对象,该注解会根据id去找对象,如果找不到报错,找到了则正常
@Qualifier:根据id实现注入,这个注解不能单独使用,需要和@Autowired一起使用 @Resource(name=""):根据id实现注入,可以单独使用
注解方式控制对象的作用范围: @Scope(“prototype”) singleton
注解方式控制对象的生命周期:
@PostConstruct 初始化方法
@PreDestroy 销毁方法