springboot01,spring完全注解(零配置)编程方式

chao123      2022-04-23     407

关键词:

前言:

 

  spring boot就是整合了很多优秀的框架,不用我们自己手动的去写一堆xml配置然后进行配置。有了它, 你可以更加敏捷地开发Spring应用程序,专注于应用程序的功能,不用在Spring的配置上多花功 夫,甚至完全不用配置。

一  spring4.x的java注解方式编程

 Java注解是Spring4.x推荐的配置方式,可以完全替代xml配置。Spring的Java注解方式是通过 @Configuration和 @Bean这两个注解实现的:

     1、@Configuration 作用于类上,相当于一个xml配置文件;

        2、@Bean 作用于方法上,相当于xml配置中的<bean>;

   上案例!!!

   开发环境:spring4.3.9+jdk1.7+maven3.6+eclipse mars.2+mysql

    结构图:

      技术分享图片

  pom.xml配置如下:

<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>org.lzq</groupId>
    <artifactId>springboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <!-- jar包统一升级管理 -->
        <spring.version>4.3.9.RELEASE</spring.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- 日志包 -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!-- mysql连接驱动包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.26</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

  实体类:UserEntity.java

package org.lzq.entity;

import java.io.Serializable;

public class UserEntity implements Serializable {
    
    private static final long serialVersionUID = -5425731832559669953L;
    private Integer userId;
    private String userName;
    private String passWord;

    public UserEntity() {
        super();
    }

    public UserEntity(Integer userId, String userName, String passWord) {
        super();
        this.userId = userId;
        this.userName = userName;
        this.passWord = passWord;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

}

  dao层代码:

  IUserDao.java

package com.accp.dao;

import java.util.List;

import org.lzq.entity.UserEntity;

public interface IUserDao {
    //查询所有
    List<UserEntity> queryAll();
}

  UserDaoImpl.java

package com.lyc.dao;


import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Repository;

import com.lyc.entity.UserEntity;


@Repository("userDao")
public class UserDaoImpl extends BaseDao implements IUserDao{

    @Override
    public List<UserEntity> queryAll() {
        
        List<UserEntity> list = new ArrayList<UserEntity>();
        String sql= "select * from users";
        rs = executeQuery(sql);
         try {
                UserEntity user=null;
                while(rs.next()){
                    user=new UserEntity();
                    user.setUserId(rs.getInt("userId"));
                    user.setUserName(rs.getString("userName"));
                    user.setPassWord(rs.getString("passWord"));
                    list.add(user);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                closeAll();
            }
            return list;

    }

}

业务层代码

UserService.java

package com.lyc.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import com.lyc.dao.IUserDao;
import com.lyc.entity.UserEntity;


@Service("userService")
public class UserService {
    //Autowired默认根据类型进行装配,加上Qualifier注解则变成根据名称装配
    @Autowired
    @Qualifier("userDao")
    private IUserDao userDao;
    
    public List<UserEntity> queryAll() {
        return userDao.queryAll();
    }
}    

配置类

SpringConfig.java

package com.lyc.configs;

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

import com.lyc.dao.IUserDao;
import com.lyc.dao.UserDaoImpl;

//通过该注解来表明该类是一个Spring的配置,相当于一个传统的ApplicationContext.xml
@Configuration
//相当于配置文件里面的<context:component-scan/>标签
@ComponentScan(basePackages="com.lyc.dao,com.lyc.service")
public class SpringConfig {
        // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>
        //bean的id值默认是方法名userDao
        /*
        @Bean
        public IUserDao userDao(){
            return new UserDaoImpl();
        }
        */

}

测试类代码  

Test01.java

package com.lyc.test;

import java.util.List;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import com.lyc.configs.SpringConfig;
import com.lyc.entity.UserEntity;
import com.lyc.service.UserService;



public class Test01 {

    public static void main(String[] args) {
        //通过java配置来实例化spring容器
        AnnotationConfigApplicationContext acac = 
                new AnnotationConfigApplicationContext(SpringConfig.class);
        //在spring容器中获取bean对象
        //名称userService是注解根据类UserService自动生成的
        UserService userService = (UserService) acac.getBean("userService");
        //或者采取下面的方式
        //UserService userService = acac.getBean(UserService.class);
        
        List<UserEntity> list = userService.queryAll();
        for (UserEntity u : list) {
            System.out.println(u.getUserName()+"---"+u.getPassWord());
        }
        //销毁容器
        acac.destroy();
    }

}

 感觉还是挺简单的哈!!!

 

 

 

 

springboot框架学习学前掌握之重要注解-通过java的配置方式进行配置spring

...点注解理解声明:本文是《凯哥陪你学系列-框架学习之springboot框架学习》中springboot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring.在上一节《springboot框架学习学前掌握之重要注解(1)-spring的java配置方式》我们... 查看详情

springboot框架学习学前掌握之重要注解-通过java的配置方式进行配置spring

...点注解理解声明:本文是《凯哥陪你学系列-框架学习之springboot框架学习》中springboot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring.在上一节《springboot框架学习学前掌握之重要注解(1)-spring的java配置方式》我们... 查看详情

springboot框架学习学前掌握之重要注解-java配置方式

...建  声明:  本文是《凯哥陪你学系列-框架学习之springboot框架学习》中学前掌握之重要注解(1)  java配置是spring4.x推荐的撇嘴方式。可以完全代替xml配置。  1:重点注解  @configuration和@bean注解  说明:  @configura... 查看详情

springboot高级原理分析--@enable*注解@import注解(代码片段)

01:SpringBoot高级原理分析–SpringBoot自动配置:Condition02:SpringBoot高级原理分析–切换内置web服务器03:SpringBoot高级原理分析–@Enable*注解、@Import注解04:SpringBoot高级原理分析–@Import注解05:SpringBoot高级原理分析–@EnableA... 查看详情

springboot基础之servlet3.0和spring4.x零配置相关文章

Servlet3+SpringMVC零配置:去除所有xmlSpring4中的WebApplicationInitializer理解servlet3注解替代web.xml利用WebApplicationInitializer配置SpringMVC取代web.xmlservlet3.0ServletContainerInitializer初始化器servlet3.0笔记之servlet的动态注册一个基 查看详情

springboot总结篇(代码片段)

????????时至今日,SpringBoot系列文章也算是告一段落,回想起当初立flag的情景,仿佛还历历在目。用一个月时间学完SpringBoot并整理成文章?又定一些异想天开计划,当时这样想着。不过,虽然过程比较艰辛,但结局也还算完美,... 查看详情

springboot入门到精通-spring的注解编程(代码片段)

SpringBoot入门到精通系列SpringBoot入门到精通-Spring的注解编程(一)SpringBoot入门到精通-SpringBoot入门(二)SpringBoot入门到精通-Spring的基本使用(三)SpringBoot入门到精通-SpringBoot集成SSM(四)前言SpringBoot并不是一个新技术了,但是我发现... 查看详情

spring注解开发--spring新注解(完全替换spring配置文件使用配置类)(代码片段)

1.Spring新注解使用原始注解还不能全部替代xml配置文件,还需要使用注解替代的配置如下:新注解+原始注解就可以完全脱离配置文件开发1.1新注解介绍1.2使用新注解进行开发1.2.1新建数据库配置文件创建数据源文件:jdbc... 查看详情

接近8000字的spring/springboot常用注解总结!安排!(转)

原文:接近8000字的Spring/SpringBoot常用注解总结!安排! 查看详情

接近8000字的spring/springboot常用注解总结!安排!(代码片段)

...,虽然我们一般不会主动去使用它。Guide哥:这个注解是SpringBoot项目的基石,创建SpringBoot项目之后会默认在主类加上。注解的集合。(@Service,@Controller)注解的bean,注解默认会扫描该类所在的包下所有的类。@Configuration:允许在Spri... 查看详情

springboot核心注解应用

1.今日大纲了解Spring的发展掌握Spring的java配置方式学习SpringBoot使用SpringBoot来改造购物车系统2.Spring的发展Spring1.x时代在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置文件中,需要... 查看详情

springboot配置介绍

SpringBoot配置介绍SpringBoot如何进行配置在SpringBoot中默认使用Servlet3.0可以没有web.xml,没有任何的xml,我们想要做一些自定义配置,比u数据库相关信息,该如何配置呢?在没有Spring的时代,我们一般采用Java配置,Spring1.0开始,Sprin... 查看详情

springboot-@bean注解详解(代码片段)

...64;Repository、@Controller、@Service、@Configration等等。SpringBoot-向容器中注册组件的方法有哪些?SpringBoot-@Configuration注解使用详解SpringBoot推荐使用JAVA配置的方式来完全代替XML配置,JAVA配置是通过@Configration和@... 查看详情

springboot高级原理分析--@enableautoconfiguration注解(代码片段)

01:SpringBoot高级原理分析–SpringBoot自动配置:Condition02:SpringBoot高级原理分析–切换内置web服务器03:SpringBoot高级原理分析–@Enable*注解、@Import注解04:SpringBoot高级原理分析–@Import注解05:SpringBoot高级原理分析–@EnableA... 查看详情

springboot静态资源处理

spring Boot默认的处理方式就已经足够了,默认情况下SpringBoot使用WebMvcAutoConfiguration中配置的各种属性。建议使用SpringBoot默认处理方式,需要自己配置的地方可以通过配置文件修改。但是如果你想完全控制SpringMVC,你可以在@Con... 查看详情

从零开始学习springboot(全局异常捕捉)

 1.新建一个类 在类上加上@ControllerAdvice注解,方法上加@ExceptionHandler(value=Exception.class)注解 2.写一个有异常的方法在控制台打印出捕获的异常:  查看详情

spring编程:springboot@springbootapplication注解(代码片段)

在使用Springboot框架进行开发的时候,通常我们会在main函数上添加@SpringBootApplication注解,今天为大家解析一下@SpringBootApplication,如有不正之处,欢迎批评指正。###@SpringBootApplication@SpringBootApplication 查看详情

学习笔记——spring中组件扫描(包含扫描排除扫描)spring中完全注解开发;spring整合junit4步骤(代码片段)

2023-01-18一、Spring中组件扫描1、默认使用的情况<context:component-scanbase-package="com.hh"></context:component-scan>2、包含扫描注:使用包含扫描之前,必须设置use-default-filters="false"(关闭当前包及其子包的扫描)type类型:①annotation... 查看详情