Springboot学习总结笔记(一)spring发展、入门

Spring的发展

1、Spring1.x 时代

在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置文件中,需要频繁的在java类和xml配置文件中切换。

2、Spring2.x时代

随着JDK 1.5带来的注解支持,Spring2.x可以使用注解对Bean进行申明和注入,大大的减少了xml配置文件,同时也大大简化了项目的开发。最佳实践:

应用的基本配置用xml,比如:数据源、资源文件等;

业务开发用注解,比如:Service中注入bean等;

3、Spring3.x到Spring4.x

从Spring3.x开始提供了Java配置方式,使用Java配置方式可以更好的理解你配置的Bean,现在我们就处于这个时代,并且Spring4.x和Spring boot都推荐使用java配置的方式。

 

Spring的Java配置方式

Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置。Spring的Java配置方式是通过 @Configuration 和 @Bean 这两个注解实现的:@Configuration 作用于类上,相当于一个xml配置文件;@Bean 作用于方法上,相当于xml配置中的<bean>。

示例

1、该示例演示了通过Java配置的方式进行配置Spring,并且实现了Spring IOC功能。首先创建maven项目并引入依赖。

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
</dependencies>

2、创建user对象

public class User {
    private String username;
    private String password;
    private Integer age;
    //略去getter,setter和toString方法
}

3、编写UserDAO 用于模拟与数据库的交互

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

4、 编写SpringConfig 用于实例化Spring容器 ,所有文件都放在cn.tit.springboot.javaconfig包下面

@Configuration //通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
@ComponentScan(basePackages = "cn.tit.springboot.javaconfig") //配置扫描包
public class SpringConfig {
    @Bean // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>
    public UserDAO getUserDAO(){
        return new UserDAO(); // 直接new对象做演示
    } 
}

6、编写测试类用于启动容器

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

7、测试效果。从以上的示例中可以看出,使用Java代码就完美的替代xml配置文件,并且结构更加的清晰。

 

配置数据库连接池

<dependency>
     <groupId>com.jolbox</groupId>
     <artifactId>bonecp-spring</artifactId>
     <version>0.8.0.RELEASE</version>
</dependency>

jdbc.properties

jdbc.url=127.0.0.1
jdbc.driverClassName= oracle.jdbc.driver.OracleDriver
jdbc.username=admin
jdbc.password=admin

MyJdbcConfig.java

@PropertySource(value = { "classpath:jdbc.properties" }, ignoreResourceNotFound = true)
@Component
public class MyJdbcConfig {
	@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 BoneCPDataSource dataSource() {
		BoneCPDataSource boneCPDataSource = new BoneCPDataSource();
		// 数据库驱动
		boneCPDataSource.setDriverClass(jdbcDriverClassName);
		// 相应驱动的jdbcUrl
		boneCPDataSource.setJdbcUrl(jdbcUrl);
		// 数据库的用户名
		boneCPDataSource.setUsername(jdbcUsername);
		// 数据库的密码
		boneCPDataSource.setPassword(jdbcPassword);
		// 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0
		boneCPDataSource.setIdleConnectionTestPeriodInMinutes(60);
		// 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0
		boneCPDataSource.setIdleMaxAgeInMinutes(30);
		// 每个分区最大的连接数
		boneCPDataSource.setMaxConnectionsPerPartition(100);
		// 每个分区最小的连接数    
		boneCPDataSource.setMinConnectionsPerPartition(5);
		return boneCPDataSource;
	}
}

测试类

@SpringBootTest
@RunWith(SpringRunner.class)
public class MyTest {
	@Autowired
	MyJdbcConfig jdbcConfig;
	@Test
	public void jdbcTest() {
		BoneCPDataSource dataSource = jdbcConfig.dataSource();
		System.out.println(dataSource);
	}
}

这样就通过java文件配置资源库:

 

Springboot

Spring Boot 是 Spring 的子项目,正如其名字,提供 Spring 的引导( Boot )的功能。通过 Spring Boot ,我们开发者可以快速配置 Spring 项目,引入各种 Spring MVC、Spring Transaction、Spring AOP、MyBatis 等等框架,而无需不断重复编写繁重的 Spring 配置,降低了 Spring 的使用成本。

特点

  1.  创建独立的Spring应用程序
  2.  嵌入的Tomcat,无需部署WAR文件
  3.  简化Maven配置
  4.  自动配置Spring
  5.  提供生产就绪型功能,如指标,健康检查和外部配置
  6.  绝对没有代码生成并且对XML也没有配置要求

快速入门

1、新建一个maven项目,引入依赖

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
</parent>
<dependencies>
        <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
</dependencies>

2、新建一个启动类

@SpringBootApplication
@RestController
public class App {

	@RequestMapping("hello")
	@ResponseBody
	public String hello() {
		return "hello world!";
	}

	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}

3、启动app,访问http://localhost:8080/hello

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值