diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 7ca1f95..bfba7ad 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -7,6 +7,7 @@ + diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 0796e1b..eff771a 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -3,5 +3,7 @@ + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 0a83112..92a23a4 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,6 +5,7 @@ diff --git a/springLearn202503/src/main/java/com/sec/Main.java b/springLearn202503/src/main/java/com/sec/Main.java index eeb8df7..50ffa0f 100644 --- a/springLearn202503/src/main/java/com/sec/Main.java +++ b/springLearn202503/src/main/java/com/sec/Main.java @@ -4,6 +4,7 @@ import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidPooledConnection; import com.mchange.v2.c3p0.ComboPooledDataSource; import com.sec.dao.UserDao; +import com.sec.service.UserService; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; @@ -21,7 +22,8 @@ public class Main { static String password = ""; public static void main(String[] args) { - Main.getSpring(); +// Main.getSpring(); + Main.getSpring1(); Main.getSetting(); Main.getDruid(); Main.getC3p0(); @@ -42,6 +44,12 @@ public class Main { // userDao.getData(); } + public static void getSpring1(){ + ClassPathXmlApplicationContext application=new ClassPathXmlApplicationContext("application.xml"); + UserService userService= (UserService)application.getBean("UserService"); + userService.getUser(); + } + //读取properties文件 对数据库连接信息进行设置 //目的是为了将配置信息与代码进行解耦 public static void getSetting(){ @@ -52,6 +60,7 @@ public class Main { password=rb.getString("jdbc.password"); } + //数据库连接池 public static void getDruid(){ DruidDataSource druidDataSource=new DruidDataSource(); druidDataSource.setDriverClassName(driver); diff --git a/springLearn202503/src/main/java/com/sec/service/UserService.java b/springLearn202503/src/main/java/com/sec/service/UserService.java new file mode 100644 index 0000000..144addb --- /dev/null +++ b/springLearn202503/src/main/java/com/sec/service/UserService.java @@ -0,0 +1,10 @@ +package com.sec.service; + +import com.sec.dao.UserDao; +import com.sec.dao.impl.UserDaoImpl; + +public interface UserService { + + + public void getUser(); +} diff --git a/springLearn202503/src/main/java/com/sec/service/impl/UserServiceImpl.java b/springLearn202503/src/main/java/com/sec/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..698a1a2 --- /dev/null +++ b/springLearn202503/src/main/java/com/sec/service/impl/UserServiceImpl.java @@ -0,0 +1,20 @@ +package com.sec.service.impl; + +import com.sec.dao.UserDao; +import com.sec.service.UserService; + +public class UserServiceImpl implements UserService { + public UserDao userDao; + /* public void setUserDao(UserDao userDao){ + this.userDao = userDao; + };*/ + + public UserServiceImpl(UserDao userDao) { + this.userDao = userDao; + } + + @Override + public void getUser() { + userDao.getData(); + } +} diff --git a/springLearn202503/src/main/resources/application.xml b/springLearn202503/src/main/resources/application.xml index 07e16a7..e72ae59 100644 --- a/springLearn202503/src/main/resources/application.xml +++ b/springLearn202503/src/main/resources/application.xml @@ -3,7 +3,18 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> - - - + + + + + + + + + \ No newline at end of file diff --git a/springLearn202503/target/classes/application.xml b/springLearn202503/target/classes/application.xml index 07e16a7..91b9cce 100644 --- a/springLearn202503/target/classes/application.xml +++ b/springLearn202503/target/classes/application.xml @@ -3,7 +3,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> - - - + + + + + + + + \ No newline at end of file diff --git a/springLearn202503/target/classes/com/sec/Main.class b/springLearn202503/target/classes/com/sec/Main.class index ee23e5e..b636ceb 100644 Binary files a/springLearn202503/target/classes/com/sec/Main.class and b/springLearn202503/target/classes/com/sec/Main.class differ diff --git a/springLearn20250422/pom.xml b/springLearn20250422/pom.xml new file mode 100644 index 0000000..16b0525 --- /dev/null +++ b/springLearn20250422/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + com.sec + springLearn20250422 + 1.0-SNAPSHOT + + + 8 + 8 + UTF-8 + + + + org.springframework + spring-context + 5.3.21 + + + mysql + mysql-connector-java + 8.0.23 + + + com.alibaba + druid + 1.1.22 + + + + \ No newline at end of file diff --git a/springLearn20250422/src/main/java/com/sec/config/JdbcConfig.java b/springLearn20250422/src/main/java/com/sec/config/JdbcConfig.java new file mode 100644 index 0000000..f8f5d13 --- /dev/null +++ b/springLearn20250422/src/main/java/com/sec/config/JdbcConfig.java @@ -0,0 +1,34 @@ +package com.sec.config; + + +import com.alibaba.druid.pool.DruidDataSource; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.PropertySource; + +/* +* 在多个配置的情况下 配置文件根据不同功能进行拆分 +* 在主配置中导入即可 +* + */ +@PropertySource("classpath:jdbc.properties") +public class JdbcConfig { + @Value("${jdbc.driver}") + private String driverClassName ; + @Value("${jdbc.url}") + private String jdbcUrl; + @Value("${jdbc.user}") + private String username ; + @Value("${jdbc.password}") + private String password; + + @Bean("DruidDataSource") + public DruidDataSource getDruidDataSource() { + DruidDataSource druidDataSource = new DruidDataSource(); + druidDataSource.setDriverClassName(driverClassName); + druidDataSource.setUrl(jdbcUrl); + druidDataSource.setUsername(username); + druidDataSource.setPassword(password); + return druidDataSource; + } +} diff --git a/springLearn20250422/src/main/java/com/sec/config/LearnConfig.java b/springLearn20250422/src/main/java/com/sec/config/LearnConfig.java new file mode 100644 index 0000000..577cca4 --- /dev/null +++ b/springLearn20250422/src/main/java/com/sec/config/LearnConfig.java @@ -0,0 +1,19 @@ +package com.sec.config; + +import com.alibaba.druid.pool.DruidDataSource; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.*; + +/* +* @Configuration 表明当前类是 配置类 +* @ComponentScan扫描对应文件下的注解格式的bean进行注入 +* @PropertySource加载对应的属性文件 用@Value将数据进行注入赋值 +* @Value简单类型注入 直接@Value("要注入的数据") +* 将属性文件的变量数值进行注入 @Value("${要注入的数据变量名称}") 配合@PropertySource使用 +* */ +@Configuration +@ComponentScan("com.sec") +@Import(JdbcConfig.class) +public class LearnConfig { + +} diff --git a/springLearn20250422/src/main/java/com/sec/dao/LearnDao.java b/springLearn20250422/src/main/java/com/sec/dao/LearnDao.java new file mode 100644 index 0000000..c72ee00 --- /dev/null +++ b/springLearn20250422/src/main/java/com/sec/dao/LearnDao.java @@ -0,0 +1,5 @@ +package com.sec.dao; + +public interface LearnDao { + public void getLearnData(); +} diff --git a/springLearn20250422/src/main/java/com/sec/dao/impl/LearnDaoImpl.java b/springLearn20250422/src/main/java/com/sec/dao/impl/LearnDaoImpl.java new file mode 100644 index 0000000..af9124c --- /dev/null +++ b/springLearn20250422/src/main/java/com/sec/dao/impl/LearnDaoImpl.java @@ -0,0 +1,37 @@ +package com.sec.dao.impl; + +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.pool.DruidPooledConnection; +import com.sec.dao.LearnDao; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +/* +* @Component该类为spring管理的bean +* 其衍生了三种注解 +* @Controller 表现层 +* @Service 业务层 +* @Repository 数据层 +* */ +@Repository +public class LearnDaoImpl implements LearnDao { + @Autowired + private DruidDataSource druidDataSource; + @Override + public void getLearnData() { + try { + DruidPooledConnection connection = druidDataSource.getConnection(); + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery("select * from user_info"); + while (resultSet.next()) { + System.out.println(resultSet.getString("user_name")); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + } +} diff --git a/springLearn20250422/src/main/java/com/sec/service/LearnService.java b/springLearn20250422/src/main/java/com/sec/service/LearnService.java new file mode 100644 index 0000000..2bb4f52 --- /dev/null +++ b/springLearn20250422/src/main/java/com/sec/service/LearnService.java @@ -0,0 +1,5 @@ +package com.sec.service; + +public interface LearnService { + public void learn(); +} diff --git a/springLearn20250422/src/main/java/com/sec/service/impl/LearnServiceImpl.java b/springLearn20250422/src/main/java/com/sec/service/impl/LearnServiceImpl.java new file mode 100644 index 0000000..ed2a0f5 --- /dev/null +++ b/springLearn20250422/src/main/java/com/sec/service/impl/LearnServiceImpl.java @@ -0,0 +1,17 @@ +package com.sec.service.impl; + +import com.sec.dao.LearnDao; +import com.sec.service.LearnService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class LearnServiceImpl implements LearnService { + + @Autowired + public LearnDao learnDao; + @Override + public void learn() { + learnDao.getLearnData(); + } +} diff --git a/springLearn20250422/src/main/resources/application.xml b/springLearn20250422/src/main/resources/application.xml new file mode 100644 index 0000000..8477835 --- /dev/null +++ b/springLearn20250422/src/main/resources/application.xml @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/springLearn20250422/src/main/resources/jdbc.properties b/springLearn20250422/src/main/resources/jdbc.properties new file mode 100644 index 0000000..91c1702 --- /dev/null +++ b/springLearn20250422/src/main/resources/jdbc.properties @@ -0,0 +1,4 @@ +jdbc.driver=com.mysql.jdbc.Driver +jdbc.url=jdbc:mysql://47.103.155.22:3306/learn_spring +jdbc.user=root +jdbc.password=mysql_wafeYX \ No newline at end of file