从零开始的spring 之 这叫搭环境?

感觉spring 有必要重新学习一遍。这是个大坑。 介于我还是个经验尚浅的人,写博客是为了提高自己。

撒~始めましょうか。。。


环境:windows + tomcat8 + eclipsejavaee + maven + spring4.0.2 

不用maven的话太费劲。

一 :引依赖。

<properties>
    <org.springframework.version>4.0.2.RELEASE</org.springframework.version> 
</properties>
<dependencies>
<span style="white-space:pre">	</span><dependency>
<span style="white-space:pre">	</span>    <groupId>org.springframework</groupId>
<span style="white-space:pre">	</span>    <artifactId>spring-context</artifactId>
<span style="white-space:pre">	</span>    <version>${org.springframework.version}</version>
<span style="white-space:pre">	</span>    <scope>runtime</scope>
<span style="white-space:pre">	</span></dependency>
<span style="white-space:pre">	</span><dependency>
<span style="white-space:pre">		</span><groupId>org.springframework</groupId>
<span style="white-space:pre">		</span><artifactId>spring-core</artifactId>
<span style="white-space:pre">		</span><version>${org.springframework.version}</version>
<span style="white-space:pre">	</span></dependency>
<span style="white-space:pre">	</span><dependency>
<span style="white-space:pre">		</span><groupId>org.springframework</groupId>
<span style="white-space:pre">		</span><artifactId>spring-beans</artifactId>
<span style="white-space:pre">		</span><version>${org.springframework.version}</version>
<span style="white-space:pre">	</span></dependency>
</dependencies>
version引用properties。便于更换版本。 在properties中配置的标签 在其他地方可以使用$符号进行引用,一些通用配置都可以这么玩。。

好了 环境搭好了 开始测试吧

没错 直接开始测试,还没到web 所以不需要配置web.xml  原先一想到spring 就想到web.xml中配置listener 等等。。不需要!其实脱离web ,spring 照样干。

二 :写测试类。

package per.hps.test1;

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration()
public class SpringTest {

}
在没引spring-test和junit之前肯定没有几个注解嘛。美味可口的依赖在下面。

<dependency>  
       <groupId>junit</groupId>  
       <artifactId>junit</artifactId>  
       <version>4.9</version>  
       <scope>test</scope>  
</dependency>   
<dependency>  
       <groupId>org.springframework</groupId>  
       <artifactId>spring-test</artifactId>  
       <version>${org.springframework.version}</version>   
</dependency> 
(话说选java样式和xml样式一样嘛。。。)

关于pom文件的上面那个<scope> 我只知道和作用环境有关,比如上面那个jar好像只有在测试的时候才会加载。不管了,有空我会专门研究的。。


三:一种新的扫描方式 JavaConfig(对我来说是新的,因为我没用过,据说比xml要强大,我看书上外国人说的,可以条件化创建bean)

new 一个class  起名 SpringConfigDemo.java

@Configuration
@ComponentScan
public class SpringConfigDemo {

}
为了省空子我就不辅助import和package了。

第一个注解:表明该类是一个配置类 说明了该类应该包涵了project创建bean的一些细节。

第二个注解:表明spring将从该类所在的包极其包下进行扫描,就是在xml当中配置的那个注解扫描(以后会记下来的)。 一个道理。

这厢~ 还能指定某个包。则表示扫描该包极其子包下all。

为了一试 我们再new个class 在这个包下。

@Component
public class SpringTestBean {
	
	public void haha(){
		System.out.println("やめて!!");
	}
}
为了测试 写个方法 输出个语句(咳咳。意思不说了。)

注解@Component : 意思表示该类会被spring搜到。 并且 会为其创建bean 至于id 如果没有指定的话 默认就是类名小写首字母。

  我已经迫不及待的想试一下啦。。回到测试类。

修改一下:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfigDemo.class)
public class SpringTest {
	
	@Autowired
	private SpringTestBean springTestBean;
	
	@Test
	public void test(){
		this.springTestBean.haha();
	}
}

在第二个注解上指定配置类。这样spring就会去找那个配置类了。

然后那个配置类声明了需找所在包极其子包下的所有bean。 然后就找到了 加@Component的bean。 然后就把他加载近了spring的上下文中。

这边声明一个字段 springTestBean 还记得spring的默认id吗? 如果不额外指定的话必须一致。 然后再加一个@Autowired注解 

关于注解 我会抽时间总结一篇的。

@Test注解 单元测试不多说

执行haha方法 测试成功。。


(由于太晚了,先到这,明天继续,明天会系统一些,今天只是小试牛刀。)


总结:

老是被固有思想所束缚。不懂得变通。万物回归本源都很简单,就看能不能看透了。原先一直以为spring脱离了xml就不能玩了。知道我学会了这个。

可能会觉得小儿科,但是对我来说还有有帮助的。奋斗












评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值