Spring+Maven——HelloWorld
2016-07-11 11:40
489 查看
Spring+Maven——HelloWorld
开始Spring的学习,在学习开始之间,首先介绍一下目前我了解的Spring。spring是用来创建类的。以往我们程序中的对象都是通过new的方式进行创建的。后来,人们发现类和类之间的耦合太强了,所以改用工厂模式。在后来把工厂模式和其他模式一起整个到框架中,从而形成了spring中IOC和DI的部分。其他的部分目前还没有了解,希望以后了解之后,再和大家介绍。下面是一个例子程序,使用的是Maven进行项目构建,当然构建的是一个普通的java程序。本文参考书籍《轻量级javaEE》<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.xueyoucto.xueyou</groupId> <artifactId>Spring-helloworld</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Spring-helloworld</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.0.5.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.0.5.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.0.5.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>4.0.5.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.0.5.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>4.0.5.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-jms --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>4.0.5.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc-portlet --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc-portlet</artifactId> <version>4.0.5.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-messaging --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-messaging</artifactId> <version>4.0.5.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-instrument --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-instrument</artifactId> <version>4.0.5.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-framework-bom --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>4.0.5.RELEASE</version> <type>pom</type> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.0.5.RELEASE</version> </dependency> </dependencies> </project>
package com.xueyoucto.xueyou; /** * Created by Administrator on 2016/7/10. */ public interface Axe { public String chop(); }
package com.xueyoucto.xueyou; /** * Created by Administrator on 2016/7/10. */ public interface Person { public void useAxe(); }
package com.xueyoucto.xueyou; /** * Created by Administrator on 2016/7/10. */ public class Chinese implements Person{ private Axe axe; public void setAxe(Axe axe) { this.axe = axe; } @Override public void useAxe() { System.out.println(axe.chop()); } }
package com.xueyoucto.xueyou; /** * Created by Administrator on 2016/7/10. */ public class StoneAxe implements Axe{ @Override public String chop() { return "石斧砍柴好慢"; } }
package com.xueyoucto.xueyou; /** * Created by Administrator on 2016/7/10. */ public class StealAxe implements Axe{ @Override public String chop() { return "铁斧砍柴好快"; } }
package com.xueyoucto.xueyou; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Hello world! */ public class App { public static void main(String[] args) { System.out.println("Hello World!"); ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); Person p = ctx.getBean("chinese",Person.class); p.useAxe(); } }
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="chinese" class="com.xueyoucto.xueyou.Chinese"> <property name="axe" ref="stoneAxe"></property> </bean> <bean id="stoneAxe" class="com.xueyoucto.xueyou.StoneAxe"> </bean> <bean id="stealAxe" class="com.xueyoucto.xueyou.StealAxe"></bean> </beans>
运行结果:
这样做的好处就是,如果程序想用stealAxe直接在XML中进行配置即可,不用再对类进行重新的编译。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="chinese" class="com.xueyoucto.xueyou.Chinese"> <property name="axe" ref="stealAxe"></property> </bean> <bean id="stoneAxe" class="com.xueyoucto.xueyou.StoneAxe"> </bean> <bean id="stealAxe" class="com.xueyoucto.xueyou.StealAxe"></bean> </beans>
运行结果:
相关文章推荐
- Java并发编程与技术内幕
- java集合类(一)综述
- eclipse中在函数头部添加说明性注释和参数的注释
- 【SpringMVC框架】springmvc的基础知识
- java正则表达式验证格式
- java实现RSA和AES加密(一)
- springmvc 国际化
- struts 防止表单重复提交
- 浅谈Java设计模式(二十三)解释器模式(Interpreter)
- 【SpringMVC框架】springmvc入门程序-环境搭建
- java对象占用内存分析
- java.lang.UnsatisfiedLinkError: Native method not found:问题解决
- 使用IntelliJ IDEA 14和Maven创建java web项目
- 浅谈Java设计模式(二十二)中介者模式(Mediator)
- Java enum的用法
- java-----容器类总结之ArrayList与LinkedList的区别
- 【MyEclipse中项目红叉问题】 使用方案
- SpringMVC 取消拦截总结
- Java实现敏感词过滤
- 浅谈Java设计模式(二十一)访问者模式(Visitor)