A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天是Spring的第二天,今天我们学习了Spring的注解配置方式,请大家整理:
1 罗列出Spring常用的注解,并说明该注解的作用是什么?
2 使用Spring整合junit需要注意哪些方面?或者说使用的注意事项是什么?

4 个回复

倒序浏览
今天是Spring的第二天,今天我们学习了Spring的注解配置方式,请大家整理:
1 罗列出Spring常用的注解,并说明该注解的作用是什么?
* 用于创建对象的
*      他们的作用就和在XML配置文件中编写一个<bean>标签实现的功能是一样的
*      Component:
*          作用:用于把当前类对象存入spring容器中
*          属性:
*              value:用于指定bean的id。当我们不写时,它的默认值是当前类名,且首字母改小写。
*      Controller:一般用在表现层
*      Service:一般用在业务层
*      Repository:一般用在持久层
*      以上三个注解他们的作用和属性与Component是一模一样。
*      他们三个是spring框架为我们提供明确的三层使用的注解,使我们的三层对象更加清晰
*
*
* 用于注入数据的
*      他们的作用就和在xml配置文件中的bean标签中写一个<property>标签的作用是一样的
*      Autowired:
*          作用:自动按照类型注入。只要容器中有唯一的一个bean对象类型和要注入的变量类型匹配,就可以注入成功
*                如果ioc容器中没有任何bean的类型和要注入的变量类型匹配,则报错。
*                如果Ioc容器中有多个类型匹配时:
*          出现位置:
*              可以是变量上,也可以是方法上
*          细节:
*              在使用注解注入时,set方法就不是必须的了。
*      Qualifier:
*          作用:在按照类中注入的基础之上再按照名称注入。它在给类成员注入时不能单独使用。但是在给方法参数注入时可以(稍后我们讲)
*          属性:
*              value:用于指定注入bean的id。
*      Resource
*          作用:直接按照bean的id注入。它可以独立使用
*          属性:
*              name:用于指定bean的id。
*      以上三个注入都只能注入其他bean类型的数据,而基本类型和String类型无法使用上述注解实现。
*      另外,集合类型的注入只能通过XML来实现。
*
*      Value
*          作用:用于注入基本类型和String类型的数据
*          属性:
*              value:用于指定数据的值。它可以使用spring中SpEL(也就是spring的el表达式)
*                      SpEL的写法:${表达式}
*
* 用于改变作用范围的
*      他们的作用就和在bean标签中使用scope属性实现的功能是一样的
*      Scope
*          作用:用于指定bean的作用范围
*          属性:
*              value:指定范围的取值。常用取值:singleton prototype
*
* 和生命周期相关 了解
*      他们的作用就和在bean标签中使用init-method和destroy-methode的作用是一样的
*      PreDestroy
*          作用:用于指定销毁方法
*      PostConstruct
*          作用:用于指定初始化方法
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
2 使用Spring整合junit需要注意哪些方面?或者说使用的注意事项是什么?
第一步:拷贝整合 junit 的必备 jar 包到 lib 目录
此处需要注意的是,导入 jar 包时,需要导入一个 spring 中 aop 的 jar 包。
第二步:使用@RunWith 注解替换原有运行器

测试类虽然可以配到xml中 但是我们一般不使用 因为:测试类只是我们在测试功能时使用,而在项目中它并不参与程序逻辑,也不会解决需求上的问题,所以创建完了,并没有使用。那么存在容器中就会造成资源的浪费。
回复 使用道具 举报
今天是Spring的第二天,今天我们学习了Spring的注解配置方式,请大家整理:
1 罗列出Spring常用的注解,并说明该注解的作用是什么?
      @Component:用于把当前类对象存入spring容器中,他有一个属性值是value.用于指定bean的ID
      @Controller 他的作用和Component一样,都是用于把当前类存入spring容器中.但是它主要用于表现层
      @Service     他的作用和Component一样,都是用于把当前类存入spring容器中.但是它主要用于业务层
      @Pepository  他的作用和Component一样,都是用于把当前类存入spring容器中.但是它主要用于持久层
@Autowried:自动类型注入.只要容器中有一个唯一的bean对象的类型和要注入的变量类型匹配就能注入成功,如果都 没有匹配则会报错,如果有多个,则需要和Qualifier配合使用,Qualifier实在按照类型注入的基础上,在按照名称注入
@Resource 他有一个属性name,在name中配置需id就可以直接通过id注入
@Value 他可以注入基本的数据类型,也可以使用spring中的EL表达式
@Scope 用与改变bean的作用范围
2 使用Spring整合junit需要注意哪些方面?或者说使用的注意事项是什么?
当我们使用Spring整合junit时,需要在pom.xml文件中导入spring-test的坐标,然后在Test类的上加入@RunWith(SpringJUnit4ClassRunner.class),这样就不会执行junit中的Runner方法,而执行Spring的Runner方法.同时,如果时xml配置的话,需要加上@ContextConfiguration(locations = "classpath:配置文件的名字")如果是使用纯注解配置的话需要加上@ContextConfiguration(classes = "配置的类的名字")
并且 如果junit的版本是低于4.12的 则会报错




回复 使用道具 举报
黄成成:
1 罗列出Spring常用的注解,并说明该注解的作用是什么?

*@Component:用于创建对象,可定义变量id名,不写默认为类名;

*@Controller:一般用于表现层创建对象,用法与Component同;

*@Service:一般用于业务层创建对象,用法与Component同;

*@Repository:一般用于持久层创建对象,用法与Component同;

*@Autowired:用于注入数据,自动按照类型注入。只有一个类型,直接注入,有多个类型则按照名称匹配,没有可匹配的类型,直接报错。xml数据注入需要set方法,注解注入不需要set方法;

*@Qualifier:当作用于实体类的时候搭配@Autowrited使用,用来指定id值。当出现在方法参数值得时候,是给参数指定id值;

*@Resource:直接按照bean的id注入,效果=@Autowired+@Qualifier。属性name用于指定bean的id;

*@Value:用于注入基本类型和String类型的数据,里面使用spel表达式,取值是在配置文件中,SpEL的写法:${表达式};

*@Scope:用于指定bean的作用范围,取值有两种:singleton单例,prototype多例;

*@PreDestroy:用于指定销毁方法;

*@PostConstruct:用于指定初始化方法;

*@Configuration:用来声明当前类是配置类,相当于bean.xml;

*@ComponentScan:组件扫描/包扫描,用来创建某个指定路径下的被注解标记的类;

*@Bean:将当前方法的返回值作为Bean对象,存入IOC容器中;

*@Imprt:导入子配置文件,使用该注解的类为父配置类;

*@PropertySource:指定外部配置文件,并用classpath来指定路径;

*@Runwith:由junit提供的注解把原有的main方法替换成spring提供的;

*@ContextConfiguration:告知spring的运行器,spring的IOC创建是基于xml的还是注解的,并说明xml文件或注解的位置;

2 使用Spring整合junit需要注意哪些方面?或者说使用的注意事项是什么?

*1.使用Spring整合junit时,要在post.xml文件中声明坐标,坐标名称是 :spring-text。

*2.其中junit的版本要大于等于4.12的版本,否则测试运行会报错。

*3.在测试类中,要在类上声明将所有main方法替换成spring提供的@RunWith(SpringJUnit4ClassRunner.class),再@ContextConfiguration声明告知spring运行器IOC的创建是基于xml文件或者注解方式,并指定其位置,最后再使用IOC的方法操作测试类。
回复 使用道具 举报

今天是Spring的第二天,今天我们学习了Spring的注解配置方式,请大家整理:
1 罗列出Spring常用的注解,并说明该注解的作用是什么?bean:用于将方法返回值(对象)放进IOC容器中
componentScan:扫描包
import 导入其他配置类
propertySource:指定property文件的位置
component(controller repository service) 组件
Junit中用Runwith 替代main方法
contextConfiguration 测试类中指定创建IOC的方式:注解的用classes;xml方式用classpath
@autowired 根据数据类型注入数据  @qualified结合autowired进行使用,寻找匹配的变量名 @resource =@autow+qualified

2 使用Spring整合junit需要注意哪些方面?或者说使用的注意事项是什么?
1 添加依赖 spring-text 5.0.2
2用@Runwith
3告知spring的运行器,spring和ioc创建是基于xml还是注解的,并且说明位置。@ContextConfiguration locations:指定xml文件的位置,加上classpath关键字,表示在类路径下。classes:指定注解类所在地位置

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马