spring学习心得

spring学习的方面总的分为以下几个方面:
一.ioc容器
二.aop面向切面的编程
三.spring对事务的管理

spring配置文件放在类路径下,可直接使用
ApplicationContext applicationContext=new ClassPathXmlApplicationContext(“springaop.xml”);
其中applicationcontext是接口

针对ioc容器的心得:比较常用的知识点为 @Autowired 的使用
@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier
bean的配置,
以及扫描的包(@controller,@Component…)
Spring加上@service等注解会自动new出相应的对象,调用其构造函数。
Spring依赖注入
默认是单例模式,多处@autowired都是同一个对象
多例模式@Scope(“prototype”) 非同一个对象
还有一些@bean等方便的操作

<context:component-scan base-package="com.cg.beans"></context:component-scan>

面向切面编程(aop):
@aspect

<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

它的好处是降低代码的耦合度,使核心代码比例增高;比如添加日志功能,如果将日志代码加入到原有功能上,耦合度就会增强而且不利于维护,后续如果继续添加其他功能的话,原本的核心代码的比例就会很低,利用切面编程就可以解决这个问题,在不需要改动原先代码的基础上添加新的功能,
spring aop提供了@before,@after 等注解即前置通知,后置通知还要返回通知等

@Before("execution(public int com.cg.beans.Calculator.*(int,int))")

切面的优先级则用@order(1)注解括号里面的数字越小优先级越高

读取配置

@Configuration
//读取配置文件
@PropertySource("classpath:mytest.properties")
public class ConfigTest {
	
	@Bean
	//根据前缀读取相应的值
	@ConfigurationProperties(prefix="test")
	public ConfEntity getConf(){
		//在返回的时候将值注入到相应的对象中
		return new ConfEntity();
	}
	
	@Bean("mapConf")
	@ConfigurationProperties(prefix="test")
	public Map<String, String> getConfMap(){
		//在返回的时候将值注入到相应的对象中,可以是Map
		return new HashMap<String, String>();
	}
	
	//当有相同的对象需指明名字
	@Bean("mapConf2")
	@ConfigurationProperties(prefix="test2")
	public Map<String, String> getConfMap2(){
		return new HashMap<String, String>();
	}
}
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值