spring是一个轻量级的javaee开源框架。 IOC:控制反转*(依赖注入),不同于以往的new创建对象,将对象的创建交给spring AOP:面向切面,在不修改源代码的前提下进行功能增强。 1.配置spring与idea 首先cv poem.xml然后maven reload一下加载即可 出现这个标志就成功了
创建xml
public static void main(String[] args) {
xml一定要放在resources下面
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
xml任意位置
FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext("Y:\\sb\\spring-learning\\src\\bean1.xml");
User user = context.getBean("user", User.class);
user.add();
}
IOC:解耦,将所有的对象调用应用创建等都交于spring管理。 技术:xml解析,工厂模式,反射 add改路径改名字sever都得跟着改耦合度太高。 di是ioc的具体实现,注入属性
属性注入,本质是初始化时调用对应的set
<bean id="user" class="User">
<constructor-arg name="name3" value="n3"></constructor-arg>
<property name="name" value="n1"></property>
<property name="name2" value="n2"></property>
</bean>
注入对象用ref
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"
default-lazy-init="true" default-autowire="byName">
<!-- 开启注解扫描告诉spring哪些地方有注解-->
<context:component-scan base-package="com.anno">
</context:component-scan>
</beans>
重点是根据类型 防止出现多个实现通过id可以确定
@value是对普通类别的注入,value可以注入值
完全注解开发,设置一个config类
@Configurable
@ComponentScan(basePackages = {"com"})
public class myConfig {
}
AnnotationConfigApplicationContext context = new
AnnotationConfigApplicationContext(myConfig.class);
aop使用记录 1.开启aop扫描
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
或者
@EnableAspectJAutoProxy
2.增强代码编写
@Component
@Aspect
@Order(0)
public class MyProxy {
@Before("execution(* com.anno.AnnoDao.aop(..))")
public void before(){
System.out.println("before");
}
}
开启事务
maven:jar包管理工具 设置: 1.设置settings.xml 并且在idea里添加maven路径和settings.xml
@Responsebody:返回字符串而非页面跳转 @Restcontroller = Responsebody+@Controller 自动扫描主程序所在包结果下的全部,不用显示配置scan springboot一个相当于下面三个 @config+bean等同于xml配置bean,注意@bean是在方法上组件名默认是方法名 获取组件 引入xml
配置文件绑定
@Data lombok 自动生成getset构造器 即可访问
因为表单只能写get和post,所以具体实现需要_method来实现,本质是添加了参数告诉springboot需要转换。这一步骤需要在yml里开启。可以通过一步步分析源码发现开启这个有个false所以需要开启。springboot大量的阅读配置文件加载来作为变量也就是用户与框架的沟通。
|