您现在的位置是:首页 >技术教程 >Spring网站首页技术教程
Spring
spring是于2003年兴起的一款轻量级的,非侵入式的IOC和AOP的一站式的java开发框架为简化企业级应用开发而生.
轻量级的: 指定是spring核心功能的jar包不大
非侵入式的: 我们的业务代码不需要继承或实现spring中任何的类或接口
IOC: 控制反转 以前项目都是在哪儿用到对象,在哪儿new, 把生成对象的权利反转给spring框架
AOP: 面向切面编程
一站式框架:
提供核心功能,主要是IOC,创建管理对象.
提供面向切面编程,增强程序扩展
对数据访问层进行了封装(重点在于事务管理)
对web层进行封装,使得请求更加便捷
Spring Helloword搭建
Maven 导入 spring 核心基础 jar
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.20.RELEASE</version>
</dependency>
编写一个 Admin实体类
需要进行配置
<bean id="admin" class="com.ffyc.ssm.model.Admin"></bean>
配置好了,测试 spring
package com.ffyc.ssm.test;
import com.ffyc.ssm.model.Admin;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test1 {
public static void main(String[] args){
/* 以前在哪用,在哪new 比如new Admin()
spring的思想是由框架统一对项目中的类进行管理,在需要的地方注入即可
相当于Map(admin,new Admin())
*/
//读取配置文件,并将配置文件中的对象进行创建
ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("spring.xml");
//Object admin = app.getBean("admin");
Admin admin = app.getBean("admin",Admin.class);
System.out.println(admin);
}
}
IOC(控制反转)
读作“反转控制”(Inverse of Control)更好理解,不是什么技术,而是一种 设计思想,就是将原本在程序中手动创建对象的控制权,交由 Spring 框架来管理
<bean id="admin" class="com.ffyc.ssm.model.Admin" scope="singleton"></bean>
package com.ffyc.ssm.dao;
public class AdminDao {
public void save(){
System.out.println("保存记录");
}
}
package com.ffyc.ssm.service;
import com.ffyc.ssm.dao.AdminDao;
public class AdminService {
AdminDao adminDao;//是AdminService中的属性
public void save(String name){
adminDao.save();
}
public AdminDao getAdminDao() {
return adminDao;
}
public void setAdminDao(AdminDao adminDao) {
this.adminDao = adminDao;
}
}
package com.ffyc.ssm.test;
import com.ffyc.ssm.model.Admin;
import com.ffyc.ssm.service.AdminService;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test2 {
public static void main(String[] args) {
//读取配置文件,并将配置文件中的对象进行创建
ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("spring.xml");
AdminService adminService = app.getBean("adminService",AdminService.class);
adminService.save("aaa");
}
}
在spring中配
<!--
Spring创建AdminDao对象
-->
<bean id="adminDao" class="com.ffyc.ssm.dao.AdminDao"></bean>
<!--
Spring 创建AdminService对象,为其AdminDao注入值
-->
<bean id="adminService" class="com.ffyc.ssm.service.AdminService">
<property name="adminDao" ref="adminDao"></property>
</bean>
(2)使用注解的方式(最终使用的方式)
//先加这个
xmlns:context="http://www.springframework.org/schema/context"
<context:component-scan base-package="com.ffyc.ssm"> </context:component-scan>
注解方式注入属性【DI:Dependency Injection】
注解与 XML 的对比
Spring JDBC
(1)下载 Spring Jdbc 的 jar 包
<!-- spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<!-- 阿里数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
(2)导入属性文件
(3)管理数据源对象
在类中获得 JdbcTemplate 对象,就可以直接使用。
@Repository(value = "adminDao")
public class AdminDao {
@Autowired
JdbcTemplate jdbcTemplate;
public void saveAdmin(Admin admin){
//spring提供jdbc
jdbcTemplate.update("insert into admin(account,password)values(?,?)","aaa","111");
}
}
queryForXXX:执行查询相关语句;