栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring框架基础理解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring框架基础理解

Spring 体系结构 Spring核心机制 Bean管理

通过Spring容器访问容器中的Bean,可以通过接口与容器建立联系

Spring可以看作一个大型工厂,生产和管理Spring容器中的Bean

BeanFactory是根接口,其有多个实现类,其中XmlBeanFactory比较常用

ApplicationContext接口是BeanFactory的子接口,是Spring容器中最常用的接口

ApplicationContext接口也称为应用上下文,它能提供更多企业级的服务,例如解析配置文件的文本信息等

创建ApplicationContext接口实例通常有三种方法:

  • 通过ClassPathXmlApplicationContext创建,它从类路径classPath目录寻找文件
  • 通过FileSystemXmlApplicationContext,它指定文件的绝对路径中寻找文件
  • 创建通过Web服务器实例化ApplicationContext容器
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");

Book book = (Book)context.getBean("book");

BookService bookService = (BookService)context.getBean("bookService");

bookService.add(book);
Bean配置

以下是常用属性及其子元素

IOC(控制反转)机制

控制反转(Inverse of Control,IoC),也叫依赖注入(Dependency Injection)

在Spring中,对象不再由调用者创建,而是由Spring容器来创建

控制反转指的是控制权由调用者转移到Spring容器,控制权发生了反转

ApplicationContext和BeanFactory都可以当做SpringIOC容器。

//传统方式
Person p1 = new Person(); 
//由Spring容器创建:
Person p2 = (Person)context.getBean("person2");

xml文件中用代表对象

中的每一个

  • 代表该对象的一个属性
  • 代表该对象的一个属性
  • 代表该对象的一个属性

constructor-arg:通过构造函数注入属性。

property:通过setter方法注入属性。


    
    
    


    
    
    



    



    

@Test
public void test01() {
    ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    Book book = (Book)context.getBean("book1");
    BookService bookService = (BookService)context.getBean("bookService1");

    System.out.println("构造方法注入");
}

@Test
public void test02() {
    ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    Book book = (Book)context.getBean("book2");
    BookService bookService = (BookService)context.getBean("bookService2");

    System.out.println("setter方法注入");
}
IOC注解 Bean标注注解含义
  • @Service用于标注业务层组件,Service实现类
  • @Controller用于标注控制层组件,即Controller实现类
  • @Repository用于标注数据访问组件,即DAO实现类
  • @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注
Bean属性注解含义
  • @Value:注入普通类型属性
  • @Resource :注入对象类型
  • @Autowired:注入对象类型,默认按照类型注入。结合@Qualifier注解完成按名称的注入。
添加注解操作

①Spring配置文件引入context约束


 

②Spring配置文件中开启注解扫描


需先进行①引入context约束,否则②中无法出现标签。

③在类上添加@注解

@Component
public class User {
	private Integer id;
	private String name;
	private Integer account;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAccount() {
		return account;
	}
	public void setAccount(Integer account) {
		this.account = account;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", account=" + account + "]";
	}
}
Spring JDBC模板

Spring框架为开发者提供了JDBC模板模式,即jdbcTemplate,它负责数据库资源管理和错误处理,大大简化了开发人员对数据库的操作

JDBC配置

   	
   	
   	
   	
   	
   	
   	
   	




    

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring
jdbc.user=root
jdbc.password=87654321

   	
   	
   	
   	
   	
   	
   	
   	
 
 
 
 		
 
JdbcTemplate的常用方法
  • execute()
  • update()
  • query()

execute(String sql)用于执行sql语句

update(String sql,Object[] args)用于执行插入、更新和删除操作

query(String sql,Object[] args)用于执行数据查询操作

String sql = "insert into MyUser values(null,?,?)";
Object param1[] = {"zhangsan", 25};
jdbcTemplate.update(sql, param1);
jdbcTemplate.update(sql,"zhangsan", 25);
String sql = "delete from MyUser where id = ?";
jdbcTemplate.update(sql,3);
基于XML方式的声明式事务管理

Spring框架提供了tx命名空间来配置事务

使用·编写通知声明事务,使用编写AOP让Spring自动对目标对象生成代理

元素来配置事务的通知。配置元素时,一般需要指定id和transaction-manager属性,其中id属性是配置文件中的唯一标识,transaction-manager属性指定事务管理器。

另外,还需要子元素,该子元素可配置多个子元素指定执行事务的细节


    
        
        
        
        
    

还需要配置事务切面


    
    

通常通过Service层进行事务管理,因此需要为Service层添加@Transactional注解

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/672301.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号