最近在学习spring boot 发现对某些注解不是很深入的了解。看技术书给出的实例 会很疑惑为什么要用这个注解? 这个注解的作用?有其他相同作用的注解吗?这个注解的运行机制是什么?等等 springboot 相对spring 改变了些规则和使用方式。总感觉 还是需要把springboot的祖先了解下。

买了本spring 实战4 希望对我的了解有帮助。

spring 的出现代替了更加重量级的企业java技术, 相对EJB  它提供了 简单的编程和轻量级。

一 spring bean java配置

环境:java version "1.8.0_181"    tomcat 8.0   

spring 框架jar包下载  http://repo.spring.io/release/org/springframework/spring/

在eclipse 新建项目导入spring基础jar

创建实体类:

 package soundsystem;

 import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.junit.Test;
@Configuration
@ComponentScan(basePackages= {"com.lzl.spring.test","soundsystem"})
public class CDPlayerConfig {
}
package com.lzl.spring.test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import soundsystem.CDPlayerConfig;
import soundsystem.SgtPeppers;
public class TestCD {
 @Test
 public void play() {
AnnotationConfigApplicationContext applicationContext2 = new AnnotationConfigApplicationContext(CDPlayerConfig.class);
  SgtPeppers bean = (SgtPeppers) applicationContext2.getBean("sgtPeppers");
  if(bean!= null) {
   bean.play();
  }else {
   System.out.println("beanis null");
  }
}

但是一直报错:No tests found matching [{ExactMatcher:fDisplayName=play], {ExactMatcher:fDisplayName=play(com.lzl.spring.test.TestCD)], {LeadingIdentifierMatcher:fClassName=com.lzl.spring.test.TestCD,fLeadingIdentifier=play]] from org.junit.internal.requests.ClassReques

也没有详细的报错信息 ,之后把测试内容放在了main方法里面

 package com.lzl.spring.test;

 import org.springframework.context.annotation.AnnotationConfigApplicationContext;

 import soundsystem.CDPlayerConfig;
import soundsystem.SgtPeppers;
public class TestCD { public static void main(String[] args) {
AnnotationConfigApplicationContext applicationContext2 = new AnnotationConfigApplicationContext(CDPlayerConfig.class);
SgtPeppers bean = (SgtPeppers) applicationContext2.getBean("sgtPeppers"); if(bean != null) {
bean .play();
}else {
System.out.println("bean is null");
} }

运行结果抛

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
 at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:153)
 at org.springframework.context.support.GenericApplicationContext.<init>(GenericApplicationContext.java:100)
 at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:60)
 at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:82)
 at com.lzl.spring.test.TestCD.main(TestCD.java:13)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
 at java.net.URLClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 ... 5 more

最后下载了 apache-common-logging  :http://commons.apache.org/proper/commons-logging/download_logging.cgi 放入项目lib包下构建了  运行成功

spring实战学习笔记(一)spring装配bean的更多相关文章

  1. Spring学习笔记(二)之装配Bean

    一,介绍Bean的装配机制 在Spring中,容器负责对象的创建并通过DI来协调对象之间的关系.但是我们要告诉Spring创建哪些Bean并且如何将其装配在一起.,装配wiring就是DI依赖注入的本 ...

  2. Spring学习笔记(三)之装配Bean

    除了组件扫描与自动装配之外还有基于Java代码的装配与基于XML的装配. 有一些场景是我们不能用自动装配的,比如我们要给第三方库中的组件装配到我们的应用中,这时自动装配无效,因为自动装配只能扫描本应用 ...

  3. Spring实战学习笔记之SpEL表达式

            在Spring XML配置文件中装配Bean的属性和构造参数都是静态的,而在运行期才知道装配的值,就可以使用SpEL实现         SpEL表达式的首要目标是通过计算获得某个值. ...

  4. spring揭密学习笔记(1) --spring的由来

    1.spring起源于在EJB暴露出各种严重问题的情况应运而生. Spring是于2003年兴起的一个轻量级的Java开发框架, Spring倡导一切从实际出发,以实用的态度来选择适合当前开发场景的解 ...

  5. Spring框架学习笔记(6)——bean的继承与依赖

    一.bean的继承 Spring通过bean标签的parent属性来实现bean的继承,这个继承的概念只存在于配置层面,也就是说bean只会继承其父bean的属性值. 父bean可以通过abstrac ...

  6. Spring 实战 学习笔记(1)

    Spring的核心 依赖注入 & 切面编程 1.创建应用组件之间协作的行为通常称为装配.(wiring) 2.Spring EL表达式.SEL是一种能在运行时构建复杂表达式,存取对象属性.对象 ...

  7. spring揭密学习笔记(3)-spring ioc容器:Spring的IoC容器之BeanFactory

    1. Spring的IoC容器和IoC Service Provider的关系 Spring的IoC容器和IoC Service Provider所提供的服务之间存在一定的交集,二者的关系如图4-1所 ...

  8. Spring Security学习笔记-自定义Spring Security过滤链

    Spring Security使用一系列过滤器处理用户请求,下面是spring-security.xml配置文件. <?xml version="1.0" encoding= ...

  9. Spring Boot 学习笔记 - 认识Spring Boot框架

    因各种原因,.NET前端工程师重新接触JAVA,真是向全栈的路上又迈出了无奈的一步. 下面正文: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初 ...

随机推荐

  1. 长春理工大学第十四届程序设计竞赛(重现赛)I

    I.Fate Grand Order 题目链接:https://ac.nowcoder.com/acm/contest/912/I 题目: Fate Grand Order是型月社发行的角色扮演类手机 ...

  2. iOS开发如何避免安全隐患

    现在很多iOS的APP没有做任何的安全防范措施,导致存在很多安全隐患和事故,今天我们来聊聊iOS开发人员平时怎么做才更安全. 一.网络方面 用抓包工具可以抓取手机通信接口的数据.以Charles为例, ...

  3. Linux 配置 history 命令显示操作时间、用户和登录 IP

    一.在配置文件中(/etc/bashrc 或者 /etc/profile 或者~/.bash_profile 或者 ~/.bashrc)添加如下配置 #vim /etc/bashrc    // 进到 ...

  4. JavaScript面向对象之封装

    Javascript是一种基于对象的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程语言,因为它的语法中没有 class(类). 那么,如果我们要把"属性" ...

  5. J-link使用SWD下载的连线方式

    手头有两块开发板,一个是F103ZET6,另一个是C8T6.后者开发板没有JTAG口,所以只能用SWD下载和调试程序. 有如下总结: 1.有些开发板对boot的电平有要求,网上说boot0要接高电平. ...

  6. GIT \ SVN 版本管理 git + gitHub

    场景1   想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件"另存为--"一个新的Word文件,再接着改,改到一定程度,再"另存为--"一个新 ...

  7. 牛逼哄哄的Qt库

    目录 一.有价值 - 好的网站 - 好的文章 二.Qt开源库-工具 - QtXlsx--excel读写库 三.Qt开源库-控件 - libqxt编译 - Qwt - QCustomPlot - 其他 ...

  8. 设计模式-观察者模式(Observer)

    观察者模式是行为模式的一种,它的作用是当一个对象的状态发生变化时,能够自动通知关联对象,自动刷新对象状态. 观察者模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步. ...

  9. c++学习书籍推荐《Exceptional C++ Style》下载

    百度云及其他网盘下载地址:点我 编辑推荐 软件“风格”所要讨论的主题是如何在开销与功能之间.优雅与可维护性之间.灵活.性与过分灵活之间寻找完美的平街点.在本书中,著名的C++大师Herb Sutter ...

  10. CAD2014学习笔记-常用绘图命令和工具

    基于 虎课网huke88.com CAD教程 圆的绘制 快捷键c:选定圆心绘制半径长度的圆 快捷键c + 命令行输入 3p(三点成圆) 2p(两点成圆) t(选定两个圆的切点绘制与两圆相切的圆,第三部 ...