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

来源:互联网 发布:浏览器无法登录淘宝 编辑:程序博客网 时间:2024/05/18 00:06

感觉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@ComponentScanpublic class SpringConfigDemo {}
为了省空子我就不辅助import和package了。

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

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

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

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

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

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

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

修改一下:

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

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

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

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

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

@Test注解 单元测试不多说

执行haha方法 测试成功。。


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


总结:

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

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












0 0
原创粉丝点击