`

2-02 Spring的Java配置方式

阅读更多

 

1) 在Eclipse中新建一个Maven项目。

2) 复制粘贴Maven的配置文件的内容到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>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.2.RELEASE</version>
	</parent>
	<groupId>cn.itcast.springboot</groupId>
	<artifactId>itcast-springboot</artifactId>
	<version>1.0.0-SNAPSHOT</version>
	<packaging>war</packaging>

	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>4.3.7.RELEASE</version>
		</dependency>
		<!-- 连接池 -->
		<dependency>
			<groupId>com.jolbox</groupId>
			<artifactId>bonecp-spring</artifactId>
			<version>0.8.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
	</dependencies>
	<build>
		<finalName>${project.artifactId}</finalName>
		<plugins>
			<!-- 资源文件拷贝插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<configuration>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<!-- java编译插件 -->
			<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>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<!-- 配置Tomcat插件 -->
				<plugin>
					<groupId>org.apache.tomcat.maven</groupId>
					<artifactId>tomcat7-maven-plugin</artifactId>
					<version>2.2</version>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>

 3) 在Eclipse中新建包层次cn.itcast.springboot.javaconfig

 4) 创建属于POJO的User类

package cn.itcast.springboot.javaconfig;

public class User {

    private String username;

    private String password;

    private Integer age;

    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;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

}

  5) 创建模拟数据库查询的UserDAO类

package cn.itcast.springboot.javaconfig;

import java.util.ArrayList;
import java.util.List;

public class UserDAO {

    public List<User> queryUserList() {
        List<User> result = new ArrayList<User>();
        // 模拟数据库的查询
        for (int i = 0; i < 10; i++) {
            User user = new User();
            user.setUsername("username_" + i);
            user.setPassword("password_" + i);
            user.setAge(i + 1);
            result.add(user);
        }
        return result;
    }

}

 5) 创建UserService类,用到了@Service 和 @Autowired 注解

package cn.itcast.springboot.javaconfig;

import java.util.List;

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

@Service
public class UserService {

    @Autowired
    // 注入Spring容器中的bean对象
    private UserDAO userDAO;

    public List<User> queryUserList() {
        // 调用userDAO中的方法进行查询
        return this.userDAO.queryUserList();
    }

}

 6) 创建SpringConfig类,主要用到了@Configuration 和 @Bean 注解

package cn.itcast.springboot.javaconfig;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import com.jolbox.bonecp.BoneCPDataSource;

@Configuration
// 通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
@ComponentScan(basePackages = "cn.itcast.springboot.javaconfig")
// 配置扫描包
@PropertySource(value = { "classpath:jdbc.properties" }, ignoreResourceNotFound = true)
public class SpringConfig {

    @Bean
    // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>
    public UserDAO getUserDAO() {
        return new UserDAO(); // 直接new对象做演示
    }

    @Value("${jdbc.url}")
    private String jdbcUrl;

    @Value("${jdbc.driverClassName}")
    private String jdbcDriverClassName;

    @Value("${jdbc.username}")
    private String jdbcUsername;

    @Value("${jdbc.password}")
    private String jdbcPassword;

    @Bean(destroyMethod = "close")
    public DataSource dataSource() {
        BoneCPDataSource boneCPDataSource = new BoneCPDataSource();
        // 数据库驱动
        boneCPDataSource.setDriverClass(jdbcDriverClassName);
        // 相应驱动的jdbcUrl
        boneCPDataSource.setJdbcUrl(jdbcUrl);
        // 数据库的用户名
        boneCPDataSource.setUsername(jdbcUsername);
        // 数据库的密码
        boneCPDataSource.setPassword(jdbcUsername);
        // 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0
        boneCPDataSource.setIdleConnectionTestPeriodInMinutes(60);
        // 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0
        boneCPDataSource.setIdleMaxAgeInMinutes(30);
        // 每个分区最大的连接数
        boneCPDataSource.setMaxConnectionsPerPartition(100);
        // 每个分区最小的连接数
        boneCPDataSource.setMinConnectionsPerPartition(5);
        return boneCPDataSource;
    }

}

 7) 创建Main.java

package cn.itcast.springboot.javaconfig;

import java.util.List;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {
    
    public static void main(String[] args) {
        // 通过Java配置来实例化Spring容器
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
        
        // 在Spring容器中获取Bean对象
        UserService userService = context.getBean(UserService.class);
        
        // 调用对象中的方法
        List<User> list = userService.queryUserList();
        for (User user : list) {
            System.out.println(user.getUsername() + ", " + user.getPassword() + ", " + user.getAge());
        }
        
        // 销毁该容器
        context.destroy();
    }

}

 8) 在Eclipse中,在Main.java上,右键,Run As Java Application

username_0, password_0, 1
username_1, password_1, 2
username_2, password_2, 3
username_3, password_3, 4
username_4, password_4, 5
username_5, password_5, 6
username_6, password_6, 7
username_7, password_7, 8
username_8, password_8, 9
username_9, password_9, 10

 

 

分享到:
评论

相关推荐

    spring-boot spring-security-oauth2 完整demo

    Spring Boot、Spring Security和OAuth2是Java生态系统中用于构建安全Web应用的三大利器。本篇文章将围绕“spring-boot spring-security-oauth2 完整demo”这一主题,详细阐述这三个框架如何协同工作,以及如何通过...

    Spring中的Quartz配置-Spring-定时器-java定时器.doc

    Spring 中的 Quartz 配置-Spring 定时器-java 定时器 在 Spring 框架中,Quartz 是一个非常流行的开源作业调度器,可以实现任务的定时执行。在本篇文章中,我们将讨论如何在 Spring 中配置 Quartz,以实现 Java ...

    jasypt-spring-boot-starter 3.0.5依赖的pom及jar

    总的来说,jasypt-spring-boot-starter 3.0.5为Java开发者提供了一个高效且安全的方式来管理和使用加密数据,简化了Spring Boot应用中的安全实践。通过深入理解POM文件中的依赖关系和JAR文件中的实现细节,我们可以...

    ok-tool-util-spring-boot-starter-master_java_

    【标题】"ok-tool-util-spring-boot-starter-master_java_" 提供的是一个基于Java的工具类库,专门针对Spring Boot、Spring Cloud、Spring Oauth2和Spring Cloud Netflix等框架进行了集成和优化,以帮助开发者更高效...

    SpringMVC精品资源--使用javaconfig的方式整合SpringMVC+Mybatis+SpringSe.zip

    【标题】:SpringMVC精品资源--使用javaconfig的方式整合SpringMVC+Mybatis+SpringSecurity 【描述】:这个资源包聚焦于Java开发中的Web应用程序集成,通过使用javaconfig而非传统的XML配置来整合SpringMVC、...

    li-fan-x-SpringCloud-master_java_

    本项目"li-fan-x-SpringCloud-master_java_"深入探讨了SpringCloud在实际应用中的多个关键特性,包括多应用共享配置、配置加密、配置实时同步、与Spring/SpringBoot的无缝对接,以及细粒度权限控制和安全过滤等。...

    Java-Spring-WebService最基础的配置示例

    在Java开发领域,Spring框架是不可或缺的工具,它提供了丰富的功能来简化企业级应用的构建。而Spring与Web服务的整合则进一步增强了其在分布式系统中的应用能力。本示例将探讨如何在Spring框架中配置最基础的Web服务...

    javahongxi-spring-boot-project-main_java_

    在Java开发领域,Spring Boot框架已经成为了构建微服务和企业级应用的标准选择。"javahongxi-spring-boot-project-main_java_" 这个项目显然基于Spring Boot,它着重于使用Redisson来实现数据缓存功能,并且支持多...

    Spring4--Spring4整合mybatis3

    在IT行业中,Spring框架是Java应用开发中的一个关键组件,它提供了一整套服务管理和数据访问的解决方案。Mybatis则是一个轻量级的持久层框架,专注于SQL查询和数据库操作。将Spring与Mybatis整合,可以充分利用两者...

    springboot课件 Spring的Java配置方式

    ### Spring Boot与Spring的Java配置方式详解 #### 一、Spring Boot项目结构及配置 **Spring Boot项目**的构建通常采用Maven或Gradle作为构建工具。为了方便开发者使用Spring Boot提供的特性,官方建议将Spring ...

    mybatis-spring-1.3.3.jar官方下载

    2. **配置 Spring**:配置数据源、SqlSessionFactory 和事务管理器。 3. **配置 MyBatis**:编写 MyBatis 的配置文件,包括映射文件(mapper.xml)和接口(Mapper)。 4. **扫描 Mapper**:使用 ...

    spring-javaconfig-reference

    Spring JavaConfig为Spring框架提供了一种全新的配置方式,它利用Java语言的强大功能来替代传统的XML配置文件。这不仅提高了代码的可读性和可维护性,还充分利用了Java的静态类型检查等优势,使得开发者能够更加专注...

    druid-spring-config.rar java spring的配置

    druid_spring_config.rar java spring的配置

    otus-spring-hw-02-java-annotations-config

    Otus Spring框架开发人员学生...基于Java和注解的Spring配置使用基于Java和注释的配置重 为应用程序添加属性文件国际化(i18n)测试应用程序的输出消息和问题如何使项目运行从GitHub克隆存储库: git clone git@github....

    springboot整合etcd配置中心-etcd-config-spring-boot.zip

    2. **配置Etcd**:在Spring Boot的`application.properties`或`application.yml`中,配置Etcd的连接信息,如地址、端口等。例如: ```yaml spring: cloud: config: server: etcd: host: localhost port: ...

    Java-Spring-SpringIoC容器-SpringIoC的学习

    在Java Spring框架中,Spring IoC(Inversion of Control,控制反转)是核心特性之一,它使得应用程序的...在实际开发中,还可以结合@Autowired注解、Profile特性、Java配置类等方式,进一步优化和扩展IoC容器的功能。

    基于Spring Boot和MyBatis-Plus的Java项目脚手架设计源码

    本设计源码提供了一个基于Spring Boot和MyBatis-Plus的Java项目脚手架,包含303个文件,其中包括238个java源文件,23个md文档,12个xml配置文件,6个yml配置文件,5张jpg图片,5个sh脚本文件,4个png图片文件,2个...

    参照阿里druid整理druid-spring-boot-starter的demo

    `druid-spring-boot-starter`自动配置了数据源、监控统计以及相关的初始化设置,使得开发者无需编写大量繁琐的XML配置或Java配置代码。 【Demo的构建】 这个"参照阿里druid个人整理druid-spring-boot-starter可...

    Springboot 日志logback-spring.xml 配置文件

    用于日志配置

Global site tag (gtag.js) - Google Analytics