最近在学习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. Linux五种IO模型 ——Java学习笔记

    本文摘自网络:     1.阻塞IO(blocking IO) 在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样: 图1 阻塞IO 当用户进程调用了re ...

  2. 使Toast弹出不重叠的封装

    一.问题 在频繁弹出toast的时候,弹出后出现延迟重叠的现象. 二.解决 Toast通常由makeTextT()方法实例化,如何不想要toast弹出时重叠,那么只需在应用中保持一个Toast对象即可 ...

  3. Codeforces Gym100502H:Clock Pictures(KMP算法)

    http://codeforces.com/gym/100502/attachments 题意:有两个时钟上面有n个指针,给出的数字代表指针的角度.问能否在某一时刻使得两个时钟的指针重合. 思路:容易 ...

  4. 微信小程序 CSS border-radius元素 overflow:hidden失效问题 iPhone ios 苹果兼容问题 伪类元素

    同事找我解决一个问题 说安卓圆角没问题 苹果上失效了 我一看 其实就是没做兼容上图给你们看看 有没有看出来 其实就是父级设置圆角属性失效 父元素使用border-radius和overflow:hid ...

  5. scrapy实战5 POST方法抓取ajax动态页面(以慕课网APP为例子):

    在手机端打开慕课网,fiddler查看如图注意圈起来的位置 经过分析只有画线的page在变化 上代码: items.py import scrapy class ImoocItem(scrapy.It ...

  6. 测试调试-利用fiddler修改response返回结果

    测试前端过程中,经常需要验证各种功能状态.不同数据层级等返回后的展示效果.一般会通过以下三种方式进行测试: 1.构造满足条件的测试数据:(耗时费力) 2.修改数据库:(前提需要了解数据库数据存储.沟通 ...

  7. springboot2.0.4对接redis3.2.12版本哨兵模式

    redis 哨兵模式的创建 1. 下载redis3.2.12版本.https://codeload.github.com/antirez/redis/zip/3.2.12 2.  解压后放到/usr/ ...

  8. IDEA安装Scala

    Scala的安装 使用scala必须有jdk windows下开发工具的安装(我这里使用的是IDEA) 打开IDE 进入这个页面,如果没有进入这个界面,而直接进入项目的话 请点击https://blo ...

  9. Cow Exhibition POJ - 2184

    题目地址:https://vjudge.net/problem/POJ-2184 下面的解释是从一个大佬那搬来的,讲的很清楚题意:给定一些奶牛,每个牛有s和f两个属性值,有正有负,要求选出一些牛,使得 ...

  10. Bzoj 2839 集合计数 题解

    2839: 集合计数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 495  Solved: 271[Submit][Status][Discuss] ...