From 7ae49833937c865579d2150784a8904121288c23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=98=8E=E5=87=BD?= <3084917167@qq.com> Date: Mon, 1 Jan 2024 13:36:33 +0000 Subject: [PATCH] =?UTF-8?q?02=20=E9=99=88=E6=98=8E=E5=87=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 陈明函 <3084917167@qq.com> --- .../1227\347\254\224\350\256\260.md" | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 "02 \351\231\210\346\230\216\345\207\275/1227\347\254\224\350\256\260.md" diff --git "a/02 \351\231\210\346\230\216\345\207\275/1227\347\254\224\350\256\260.md" "b/02 \351\231\210\346\230\216\345\207\275/1227\347\254\224\350\256\260.md" new file mode 100644 index 0000000..53b6e2d --- /dev/null +++ "b/02 \351\231\210\346\230\216\345\207\275/1227\347\254\224\350\256\260.md" @@ -0,0 +1,57 @@ +````Java +创建容器 + +加载多个配置文件 + +```java +ApplicationContext ctx = new ClassPathXmlApplicationContext("bean1.xml", "bean2.xml"); +``` + + + +Spring提供@Component注解的三个衍生注解 + +@Controller:用于表现层bean定义 + +@Service:用于业务层bean定义 + +@Repository:用于数据层bean定义 + +```java +@Repository("bookDao")public class BookDaoImpl implements BookDao {} +@Servicepublic class BookServiceImpl implements BookService {} + +``` + +Spring3.0开启了纯注解开发模式,使用Java类替代配置文件,开启了Spring快速开发赛道Java类代替Spring核心配置文件, + +@Configuration注解用于设定当前类为配置类@ComponentScan注解用于设定扫描路径,此注解只能添加一次,多个数据请用数组格式 + +```java +@ComponentScan({com.mdd.service","com.mdd.dao"}) + +``` + +```java +//加载配置文件初始化容器 +ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); +//加载配置类初始化容器 +ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class); + +``` + +依赖注入 + +使用@Autowired注解开启自动装配模式(按类型) + +```java +@Servicepublic class BookServiceImpl implements BookService { @Autowired private BookDao bookDao; public void setBookDao(BookDao bookDao) { this.bookDao = bookDao; } public void save() { System.out.println("book service save ..."); bookDao.save(); }} + +``` + +注意:自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法 + +注意:自动装配建议使用无参构造方法创建对象(默认),如果不提供对应构造方法,请提供唯一的构造方法 +\ No newline at end of file +```` + -- Gitee