Spring 使用注解的方式

一。配置pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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.xingxue.spring</groupId>
    <artifactId>spring.day1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <!-- spring 相关的依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
        <!-- spring web 模块提供了启动 spring 容器的 监听器 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
    </dependencies>

</project>

二、配置beans.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"
       xmlns:context="http://www.springframework.org/schema/context"
       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">


    <!-- component-scan 标签, 组件扫描标签:
                 base-package 属性:指定扫包,扫指定的包的所有子子孙孙包当中的类,并把这些类纳入spring 容器中,就不需要在 bean 标签来表示了。
                                    不是所有的类都扫,只扫类上有标记的 类:
                                    @Controller
                                    @Service
                                    @Repository
                                    @Component   使用其中一个注解就可以了
    -->
   <context:component-scan base-package="com.xingxue"></context:component-scan>

</beans>

三。使用注解的方式  配置类

package com.xingxue.spring.web.controller;

import com.xingxue.spring.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;

@Controller  /*那几个注解选择其中一个就是了*/
public class UserController {

    @Autowired/*这个注解就是spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,
    它会自动帮你set/get。*/
    private IUserService userService;
    public void login(){
        userService.login();
    }
}




package com.xingxue.spring.service;

import org.springframework.stereotype.Service;

@Service
public interface IUserService {
    public void login();
}



package com.xingxue.spring.service;

import com.xingxue.spring.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;

@Service(value = "userService") /*bean标签配置的id属性*/

public class UserService implements IUserService {

    @Autowired
    private UserDao userDao;



    public void login() {
        System.out.println("userservice 方法执行了。");
        userDao.login();
    }
}
package com.xingxue.spring.dao;

import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;

@Repository(value = "userDao")
public class UserDao {
    public void login() {
        System.out.println("正在查询....");
    }
}


测试效果

package com.xingxue.spring.test;

import com.xingxue.spring.beans.A;
import com.xingxue.spring.beans.B;
import com.xingxue.spring.web.controller.UserController;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {

    public static void main(String[] args) {
        ApplicationContext cxt  = new ClassPathXmlApplicationContext("beans.xml");


       UserController userController= (UserController) cxt.getBean("userController");

        userController.login();

    }
}

猜你喜欢

转载自blog.csdn.net/nt19931231/article/details/80052014