一、spring入门案例
来源:互联网 发布:php erp管理系统 编辑:程序博客网 时间:2024/05/18 02:16
一、什么是spring呢?话不多说,来看看这个入门案例
1. 建立java项目myspring1
2. 在包com.beans包下建立简单javabean名叫User
package com.beans;public class User {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public void sayHello(){System.out.println("Hello "+name);}}
3.在com.test包下建立Test.java测试
package com.test;import com.beans.User;public class Test {public static void main(String[] args) {User user=new User();user.setName("蔡文姬");user.sayHello();}}
4.运行结果当然是打出"Hello 蔡文姬",但是如果叫你不许用User user=new User();这样的代码建立新对象,那你打得出"Hello 蔡文姬"吗?
5.这就要用到spring了,在引入spring开发包之后,在src目录下新建applicationContext.xml并编辑
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><bean id="user" class="com.beans.User"><property name="name" value="蔡文姬"/></bean></beans>
6.此时在Test.java中,不必new一个User对象,只需要
package com.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.beans.User;public class Test {public static void main(String[] args) {ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");User user=(User) ac.getBean("user");user.sayHello();}}
7.显然, 该代码首先获得了spring的applicationContext.xml(容器对象),然后从里面取出了一个id叫做user的bean对象,该bean已经在xml中配置了name信息,故调用sayHello函数也能出现相同的输出结果。
二、当然,不是所有的属性都有一个确定的值,比如下面这个案例
1. 创建项目myspring2并导入spring开发包
2. 新建类Dog:
package com.service;public class Dog {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}}
3.新建类User:
package com.service;public class User{private String name;private Dog dog;public String getName() {return name;}public void setName(String name) {this.name = name;}public Dog getDog() {return dog;}public void setDog(Dog dog) {this.dog = dog;}public void show(){System.out.println(name+"有一只狗"+dog.getName());}}
4.配置applicationContext.xml,此时Dog类好配置,注意User类的配置
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><bean id="user" class="com.service.User"><property name="name" value="小明"/><property name="dog" ref="dog"/></bean><bean id="dog" class="com.service.Dog"><property name="name"><value>旺财</value></property></bean></beans>
5.ref="dog"表示,该属性值参考于另一个bean,名叫dog
6.此时编辑运行Test.java:
package com.test;import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory.xml.XmlBeanFactory;import org.springframework.core.io.ClassPathResource;import com.service.User;public class Test {public static void main(String[] args) {ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");User user=(User) ac.getBean("user");user.show();}}
7.运行结果:控制台打出 小明有一只狗旺财
三、通过以上两个案例,我们还看不出到底spring有什么好处,Spring开发提倡接口编程,配合ioc(或者叫di),可以达到解耦的目的,举例说明:
1. 新建项目myspring3,导入spring开发包
2. 新建接口ChangeLetter
package com.myz.inter;public interface ChangeLetter {public String change();}
3. 新建类UpperLetter,实现ChangeLetter接口,将字符串全部转为大写
package com.myz.inter;public class UpperLetter implements ChangeLetter{private String str;public String getStr() {return str;}public void setStr(String str) {this.str = str;}@Overridepublic String change() {// TODO Auto-generated method stubreturn str.toUpperCase();}}
4. 同理新建类LowwerLetter,将字符串全部转为小写
ackage com.myz.inter;public class LowwerLetter implements ChangeLetter {private String str;public String getStr() {return str;}public void setStr(String str) {this.str = str;}@Overridepublic String change() {// TODO Auto-generated method stubreturn str.toLowerCase();}}
5.配置xml(将字符串转换成大写)
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><bean id="changeLetter" class="com.myz.inter.UpperLetter"><property name="str" value="aBcD"/></bean></beans>
package com.myz.test;import org.springframework.context.ApplicationContext;import com.myz.inter.ChangeLetter;import com.util.ApplicationContextUtil;public class Test {public static void main(String[] args) {ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");ChangeLetter str = (ChangeLetter) ac.getBean("changeLetter");System.out.println(str.change());}
7.控制台输出:ABCD
8.而我们如果我们突然想要字符串的小写了,而不是大写,仅仅需要修改一点点xml的配置即可
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><bean id="changeLetter" class="com.myz.inter.LowwerLetter"><property name="str" value="aBcD"/></bean></beans>
项目源码:链接:https://pan.baidu.com/s/1kVy3t7T 密码:byad
阅读全文
0 0
- 一、spring入门案例
- spring mvc基础篇(一):入门案例
- spring入门--spring入门案例
- Spring入门案例 注解方式配置(一)
- spring整合zookeeper与dubbo的入门案例(一)
- Spring入门案例
- 《spring---入门案例》
- Spring入门之案例
- spring 入门案例
- Spring 入门案例1
- 入门级别spring案例
- Spring入门案例 IoC
- Spring入门案例 DI
- Spring Mvc-入门案例
- SPring MVC 入门案例
- spring入门案例
- spring mvc入门案例
- Spring MVC入门案例
- 关于eclipse部署项目后,在tomcat中的webapps文件夹下没有项目
- jsp页面检测鼠标停止一段时间后自动跳转向页面
- 一种根据MAC地址自动生成设备名称的方法(一)
- Android 从网络中获取数据时 产生部分数据乱码的解决
- 苏州旅游骗局黑幕经历
- 一、spring入门案例
- 如果有人让你推荐编程技术书,请叫他看这个列表
- Spring-boot -- 配置文件
- Python基础-获取对象信息的常用函数
- Centos6.4下Yum命令安装Mysql数据库及配置
- 时间处理
- Super关键字理解
- ListView同时相应长按点击事件和单击事件的解决方法
- 新语言Kotlin使用recyclerview展示数据+retrofit请求数据+Rxjava