Spring入门案例(简单)

Spring的入门案例(简单)

该案例主要用来概述使用Spring IOC方式创建对象并调用方法,希望对大家有所帮助

Spring的概述

  1. 什么是Spring :Spring是分层的JavaSE/EE应用 full-stack 轻量级开源框架
    Spring的两大核心:
    IOC(Inverse Of Control 反转控制)
    AOP(Aspect Oriented Programming 面向切面编程)
  2. 我们为什么要使用Spring:Spring是一站式框架,称之为一站式框架的原因是Spring可以整合其他框架
  3. 什么是IOC :IOC的核心如下:
    1.工厂负责对象生命力周期的管理:(Spring管理与销毁)
    2.对象的依赖由工厂完成注入(Spring维护对象间关系)
    Spring提出了对象工厂的概念,由Spring工厂来管理对象的生命周期。所谓的生命周期指的是从对象的创建一直到对象的销毁都由Spring来管理,我们无需再自己new对象,而是从Spring工厂中获取需要的对象,甚至对象依赖都是工厂来注入,无需手动注入依赖

案例流程总结:

第一步:创建maven Java工程,在pox.xml配置文件中导入以下jar包的坐标

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.4.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.1.2.RELEASE</version>
        </dependency>
    </dependencies>

第二步:在Java包下创建以下包目录
在这里插入图片描述

第三步:在comfig目录下创建 SpringConfiguration类
在SpringConfigoration类上定义@ComponentScan注解告知Spring要扫描的包,Spring会>扫描并加载指定包下所有类中的注解。

@Configuration注解告知Spring当前类是一个配置类;

第四步:在dao包下创建Dao接口,接口中创建一个无返回值的findAll方法
在dao包下创建impl包
在impl包下创建UserDaoImpl类实现UserDao接口,实现接口的方法,并在实现类上定义接口@Component注解给实现类起一个别名

第五步:在service包下创建一个UserService接口在接口中定义一个findAllUsers方法
在service包下创建impl包
在impl包下创建一个UserServiceImpl类实现UserService接口,在UserServiceImpl类中通过@Resource注解(指定依赖,就是通过类的别名创建对象)创建对象,并在对象的前面添加private(这里我定义的是UserDaoImpl对象),在UserServiceImpl中定义一个方法findAllUsers在类中打印查询开始,调用UserDaoImpl对象的方法,打印查询结束

第六步:在测试类中使用@Test注解进行测试
在测试方法中通过配置类创建对象(ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfiguration.class);),调用对象的getBean(“类的别名”)方法,方法的返回值Object类型,需要对对象进行强转(UserService userServiceImpl = (UserService) applicationContext.getBean(“userServiceImpl”);),最后调用对象的方法(userServiceImpl.findAllUsers();),进行测试(运行测试方法)

具体代码

comfing包

package com.czxy.comfig;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
 * @Author Jimmy
 * @Date 2019/6/10 3:46 PM
 * @Desc
 */

//告知Spring要扫描的包,Spring会扫描并加载指定包下所有类中的注解。
@ComponentScan(basePackages = {"com.czxy.dao","com.czxy.service"})
//注解告知Spring当前类是一个配置类;
@Configuration
public class SpringConfiguration {
}

dao包

package com.czxy.dao;

public interface UserDao {
    public void findAll();
}

dao > impl包

package com.czxy.dao.impl;

import com.czxy.dao.UserDao;
import org.springframework.stereotype.Component;

/**
 * @Author Jimmy
 * @Date 2019/6/10 3:48 PM
 * @Desc
 */

@Component("userDaoImpl")
public class UserDaoImpIA implements UserDao {

    public void findAll() {
        System.out.println("A方式 查询所有");
    }
}

service包

package com.czxy.service;

public interface UserService {
    public void findAllUsers();
}

service > impl包

package com.czxy.service.impl;

import com.czxy.dao.UserDao;
import com.czxy.service.UserService;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * @Author Jimmy
 * @Date 2019/6/10 3:48 PM
 * @Desc
 */
@Component("userServiceImpl")
public class UserServiceImplA implements UserService {
    //指定依赖
    @Resource(name = "userDaoImpl")
    private UserDao userDao;
    public void findAllUsers() {
        System.out.println("查询所有");
        userDao.findAll();
        System.out.println("查询结束");
    }
}

test包

package com.czxy.test;

import com.czxy.comfig.SpringConfiguration;
import com.czxy.service.impl.UserServiceImplA;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import javax.annotation.Resource;

/**
 * @Author Jimmy
 * @Date 2019/6/10 3:48 PM
 * @Desc
 */
public class TestA {
	@Test
    public void test(){
       ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfiguration.class);
        UserService userServiceImpl = (UserService) context.getBean("userServiceImpl");
        userServiceImpl.findAllUsers();
    }
}

运行结果

在这里插入图片描述

整合JUnit4

只需要修改测试文件即可,前面在pom.xml文件中已经导入了spring-test jar的坐标,代码如下

package com.czxy.test;

import com.czxy.comfig.SpringConfiguration;
import com.czxy.service.impl.UserServiceImplA;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;

/**
 * @Author Jimmy
 * @Date 2019/6/10 3:48 PM
 * @Desc
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SpringConfiguration.class})
public class TestA {
    @Resource(name = "userServiceImpl")
    private UserServiceImplA serviceImplA;
    @Test
    public void test(){
        serviceImplA.findAllUsers();
    }
}

运行结果

在这里插入图片描述

对于Spring入门案例,有很多不同的示例代码。在这里,我提供一个简单Spring MVC示例代码,用于展示如何使用Spring框架构建一个Web应用程序: 1. 首先,需要创建一个基本的Maven项目。 2. 添加Spring MVC依赖项到pom.xml文件中: ```xml <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.7</version> </dependency> </dependencies> ``` 3. 创建一个HomeController类: ```java package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home(Model model) { model.addAttribute("message", "Hello, World!"); return "home"; } } ``` 4. 创建一个home.jsp文件: ```html <!DOCTYPE html> <html> <head> <title>Home</title> </head> <body> <h1>${message}</h1> </body> </html> ``` 5. 创建一个WebConfig类: ```java package com.example.demo; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ViewResolverRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration @EnableWebMvc public class WebConfig implements WebMvcConfigurer { @Override public void configureViewResolvers(ViewResolverRegistry registry) { registry.jsp().prefix("/WEB-INF/views/").suffix(".jsp"); } } ``` 6. 创建一个web.xml文件: ```xml <web-app> <display-name>Spring MVC Application</display-name> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/config/springmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> ``` 7. 创建一个springmvc-config.xml文件: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" 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 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="com.example.demo" /> <mvc:annotation-driven /> <mvc:view-controller path="/" view-name="home" /> </beans> ``` 8. 将home.jsp文件放在/WEB-INF/views/目录下。 9. 运行应用程序,并在浏览器中访问http://localhost:8080/。您应该能够看到“Hello, World!”消息。 这是一个简单Spring MVC示例,它展示了如何使用Spring框架构建一个Web应用程序。当然,Spring框架有很多其他功能和用例,这只是一个入门示例。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值