标签:xml ac 配置文件 car bean 注解 ioc public
目录
1.什么是注解
①:注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值...)
②:使用注解,注解作用在类上面,方法上面,属性上边
③:使用注解的目的:简化XML配置
2.Spring针对Bean管理中创建对象提供的注解
@Component 普通的类
@Controller 表现层
@Service 业务层
@Repository 持久层
这四个功能都一样写一个就行
使用注解的两种方式:
配置文件进行注解扫描
1、在需要进行管理的类上添加注解 上述任意一种
@Component(value="car") //类似于bean id 的功能
/* <bean id="car" class="Car(全类名)"/> */
/**
* 组件,作用:把当前类使用IOC容器进行管理,如果没有指定名称,默认使用类名,首字母是小写。
* car。或者自己指定名称
**/
@Controller(value="car")
public class car {
public void hello() {
System.out.println("使用注解,方便吧!");
}
}
2、更改配置文件在ApplicationContext.xml里面
<?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">
<!--开启注解扫描 com.qcby所有的包中的所有的类-->
<context:component-scan base-package="com.qcby.sevice"/>
</beans>
注意一下我都car是放在sevice包里面的
3、测试类
@Test
public void car(){
//创建spring 工厂
ApplicationContext ac= new ClassPathXmlApplicationContext("ApplicationContext.xml");
//获取bean对象
Car car=(Car) ac.getBean("car");
//输出
car.hello();
}
IOC纯注解的方式
纯注解的方式是微服务架构开发的主要方式,所以也是非常的重要。纯注解的目的是替换掉所有的配置文件。但是需要编写配置类。
1、编写配置类替换之前的xml文件
package com.qcby;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration //这是一个配置类
@ComponentScan("com.qcby.sevice")//扫描地址
public class SpringConfig {
}
这个配置类和sevice是同级别的在com.qcby下面,这样更清楚一点毕竟配置类并不属于一个主体内容,其实放在一个包里面也可以运行
2、更改测试类
这个和xml测试类的差别在于 ac= new Annoation... 以及传参(SpringConfig.class)//自己编写的配置类名称不加"";
@Test
public void car1(){
ApplicationContext ac= new AnnotationConfigApplicationContext(SpringConfig.class);
//获取bean对象
Car car=(Car) ac.getBean("car");
//输出
car.hello();
}
标签:xml,ac,配置文件,car,bean,注解,ioc,public 来源: https://blog.csdn.net/qq_45841224/article/details/123028471
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。