spring快速入门实例教程

 更新时间:2014年12月18日 09:28:09   投稿:shichen2014  
这篇文章主要介绍了spring快速入门实例,主要分析了spring的基本配置与控制反转,对于spring的学习具有一定的参考借鉴价值,需要的朋友可以参考下

本文实例讲述了spring的基本配置与控制反转。分享给大家供大家参考。具体如下:

这里我们采用了maven构建java项目,没有采用maven的同样适用。

1. 创建maven项目,我创建的项目名称为springdemo。

2. 添加依赖包,我是通过maven添加的包,maven相关配置如下:

复制代码 代码如下:
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.0.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>4.0.1.RELEASE</version>
</dependency>

当然,也可以直接添加jar文件。

3. 创建简单包结构

我创建了entity 、dao、business等包结构。

4. 编写简单代码

user,空代码,如下:

复制代码 代码如下:
package com.chzhao.model;
public class User {
}

接口 IUserDao
复制代码 代码如下:
package com.chzhao.dao;
import com.chzhao.model.User;
public interface IUserDao {
     public User findUserById();
}

接口实现

复制代码 代码如下:
package com.chzhao.dao;
import com.chzhao.model.User;
public class UserDaoImpl implements IUserDao {
    public User findUserById() {
        System.out.println("dao");
        return null;
    }
}

调用

复制代码 代码如下:
package com.chzhao.springdemo;
import com.chzhao.dao.IUserDao;
import com.chzhao.model.User;
public class UserManager {
    public IUserDao getDao() {
        return dao;
    }
    public void setDao(IUserDao dao) {
        this.dao = dao;
    }
    private IUserDao dao; 
    public User findUser() { 
        return dao.findUserById(); 
    } 
}

main初始化

复制代码 代码如下:
package com.chzhao.springdemo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {

        ApplicationContext act = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        UserManager um = (UserManager) act.getBean("userManager");
        um.findUser();
    }
}

相应的配置文件

复制代码 代码如下:
<?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="UserDaoImpl"  class="com.chzhao.dao.UserDaoImpl"/> 
    <bean  name="userManager" class="com.chzhao.springdemo.UserManager"> 
        <property name="dao" > 
            <ref bean="UserDaoImpl"/> 
        </property> 
    </bean> 
</beans>

以上是正常的方式。

下面是注解的方式。

首先配置文件要改,如下

复制代码 代码如下:
<?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 class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" /> 
    <bean id="UserDaoImpl"  class="com.chzhao.dao.UserDaoImpl"/> 
    <bean  name="userManager" class="com.chzhao.springdemo.UserManager"> </bean> 
</beans>

接口实现

复制代码 代码如下:
package com.chzhao.dao;
import org.springframework.stereotype.Repository;
import com.chzhao.model.User;
@Repository
public class UserDaoImpl implements IUserDao {
    public User findUserById() {
        System.out.println("dao");
        return null;
    }
}

调用

复制代码 代码如下:
package com.chzhao.springdemo;
import org.springframework.beans.factory.annotation.Autowired;
import com.chzhao.dao.IUserDao;
import com.chzhao.model.User;
public class UserManager {

    @Autowired
    private IUserDao dao; 
    public User findUser() { 
        return dao.findUserById(); 
    } 
}

两种方法实现的是一样的。

希望本文所述对大家的Java程序设计有所帮助。

相关文章

  • 浅谈vue中子组件传值的默认值情况

    浅谈vue中子组件传值的默认值情况

    这篇文章主要介绍了浅谈vue中子组件传值的默认值情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Java中throw和throws异常处理完整例子说明

    Java中throw和throws异常处理完整例子说明

    这篇文章主要给大家介绍了关于Java中throw和throws异常处理的相关资料, throw关键字是用于在方法内抛出异常,而throws关键字是在方法声明中指定可能抛出的异常,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • 不同Java泛型构造函数的详解

    不同Java泛型构造函数的详解

    这篇文章主要介绍了不同Java泛型构造函数的详解,因为对象是应用类型,对象赋值是指向同一个对象,所以如果需要保存对象某个时刻的状态,就需要构造函数来new一个新的对象。下面我们来详细了解一下吧
    2019-06-06
  • Lock、Condition实现简单的生产者消费者模式示例

    Lock、Condition实现简单的生产者消费者模式示例

    这篇文章主要介绍了Lock、Condition实现简单的生产者消费者模式示例,需要的朋友可以参考下
    2014-04-04
  • 记一次springboot服务凌晨无故宕机问题的解决

    记一次springboot服务凌晨无故宕机问题的解决

    这篇文章主要介绍了记一次springboot服务凌晨无故宕机问题的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • java正则表达式解析html示例分享

    java正则表达式解析html示例分享

    这篇文章主要介绍了java正则表达式解析html示例,用到获取url的正则表达式,获取图片的正则表达式,需要的朋友可以参考下
    2014-02-02
  • Java实现简单的扫雷小程序

    Java实现简单的扫雷小程序

    这篇文章主要为大家详细介绍了Java实现简单的扫雷小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • java打包解包操作小结

    java打包解包操作小结

    使用别人的jar包程序,需要修改其中的相关参数然后重新打包,在此记录一下打包和解包过程,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • Java多线程之volatile关键字及内存屏障实例解析

    Java多线程之volatile关键字及内存屏障实例解析

    volatile是JVM提供的一种最轻量级的同步机制,因为Java内存模型为volatile定义特殊的访问规则,使其可以实现Java内存模型中的两大特性:可见性和有序性。这篇文章主要介绍了Java多线程之volatile关键字及内存屏障,需要的朋友可以参考下
    2019-05-05
  • Java常见踩坑记录之异常处理

    Java常见踩坑记录之异常处理

    程序运行时发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常,下面这篇文章主要给大家介绍了关于Java常见踩坑记录之异常处理的相关资料,需要的朋友可以参考下
    2022-01-01

最新评论